summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/redmine/plugin.rb9
-rw-r--r--test/unit/lib/redmine/plugin_test.rb12
2 files changed, 16 insertions, 5 deletions
diff --git a/lib/redmine/plugin.rb b/lib/redmine/plugin.rb
index 30c182d17..8eb1c078d 100644
--- a/lib/redmine/plugin.rb
+++ b/lib/redmine/plugin.rb
@@ -64,15 +64,18 @@ module Redmine #:nodoc:
end
end
end
- def_field :name, :description, :url, :author, :author_url, :version, :settings
+ def_field :name, :description, :url, :author, :author_url, :version, :settings, :directory
attr_reader :id
# Plugin constructor
def self.register(id, &block)
p = new(id)
p.instance_eval(&block)
+
# Set a default name if it was not provided during registration
p.name(id.to_s.humanize) if p.name.nil?
+ # Set a default directory if it was not provided during registration
+ p.directory(File.join(self.directory, id.to_s)) if p.directory.nil?
# Adds plugin locales if any
# YAML translation files should be found under <plugin>/config/locales/
@@ -137,10 +140,6 @@ module Redmine #:nodoc:
@id = id.to_sym
end
- def directory
- File.join(self.class.directory, id.to_s)
- end
-
def public_directory
File.join(self.class.public_directory, id.to_s)
end
diff --git a/test/unit/lib/redmine/plugin_test.rb b/test/unit/lib/redmine/plugin_test.rb
index ecf0546fe..2827dd5b9 100644
--- a/test/unit/lib/redmine/plugin_test.rb
+++ b/test/unit/lib/redmine/plugin_test.rb
@@ -83,6 +83,18 @@ class Redmine::PluginTest < ActiveSupport::TestCase
assert_nil Redmine::MenuManager.items(:project_menu).detect {|i| i.name == :foo_menu_item}
end
+ def test_directory_with_override
+ @klass.register(:foo) do
+ directory '/path/to/foo'
+ end
+ assert_equal '/path/to/foo', @klass.find('foo').directory
+ end
+
+ def test_directory_without_override
+ @klass.register(:foo) {}
+ assert_equal File.join(@klass.directory, 'foo'), @klass.find('foo').directory
+ end
+
def test_requires_redmine
plugin = Redmine::Plugin.register(:foo) {}
Redmine::VERSION.stubs(:to_a).returns([2, 1, 3, "stable", 10817])