diff --git a/lib/redmine/plugin_loader.rb b/lib/redmine/plugin_loader.rb index 7b05a8a3d7..1d2f2db48d 100644 --- a/lib/redmine/plugin_loader.rb +++ b/lib/redmine/plugin_loader.rb @@ -136,8 +136,12 @@ module Redmine @plugin_directories end - def self.mirror_assets - directories.each(&:mirror_assets) + def self.mirror_assets(name=nil) + if name.present? + directories.find{|d| d.to_s == File.join(directory, name)}.mirror_assets + else + directories.each(&:mirror_assets) + end end end end diff --git a/lib/tasks/redmine.rake b/lib/tasks/redmine.rake index 2bebaf18cb..c7c257bfc3 100644 --- a/lib/tasks/redmine.rake +++ b/lib/tasks/redmine.rake @@ -150,7 +150,7 @@ DESC name = ENV['NAME'] begin - Redmine::Plugin.mirror_assets(name) + Redmine::PluginLoader.mirror_assets(name) rescue Redmine::PluginNotFound abort "Plugin #{name} was not found." end diff --git a/test/unit/lib/redmine/plugin_loader_test.rb b/test/unit/lib/redmine/plugin_loader_test.rb index 43d100521a..2b103420ee 100644 --- a/test/unit/lib/redmine/plugin_loader_test.rb +++ b/test/unit/lib/redmine/plugin_loader_test.rb @@ -41,6 +41,20 @@ class Redmine::PluginLoaderTest < ActiveSupport::TestCase assert File.exist?("#{@klass.public_directory}/foo_plugin/stylesheets/foo.css") end + def test_mirror_assets + Redmine::PluginLoader.mirror_assets + + assert File.exist?("#{@klass.public_directory}/foo_plugin") + assert File.exist?("#{@klass.public_directory}/foo_plugin/stylesheets/foo.css") + end + + def test_mirror_assets_with_plugin_name + Redmine::PluginLoader.mirror_assets('foo_plugin') + + assert File.exist?("#{@klass.public_directory}/foo_plugin") + assert File.exist?("#{@klass.public_directory}/foo_plugin/stylesheets/foo.css") + end + def clear_public FileUtils.rm_rf 'tmp/public' end