aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Pohlenz <sam@sampohlenz.com>2009-12-27 11:16:34 +1030
committerCarl Lerche <carllerche@mac.com>2009-12-29 14:45:43 -0800
commitcbce027669ded4e951af3124cae23d6707357aea (patch)
treec65a7602001b6ba5b880e51e43003e374ecf2696
parent2e87196d14f0cb7b75a6b81cbd8a0810ed684de9 (diff)
downloadrails-cbce027669ded4e951af3124cae23d6707357aea.tar.gz
rails-cbce027669ded4e951af3124cae23d6707357aea.tar.bz2
rails-cbce027669ded4e951af3124cae23d6707357aea.zip
Application object should instantiate non-vendored plugins
Signed-off-by: Carl Lerche <carllerche@mac.com>
-rw-r--r--railties/lib/rails/application.rb2
-rw-r--r--railties/lib/rails/plugin.rb13
2 files changed, 10 insertions, 5 deletions
diff --git a/railties/lib/rails/application.rb b/railties/lib/rails/application.rb
index 2d0892282e..91c866d0c9 100644
--- a/railties/lib/rails/application.rb
+++ b/railties/lib/rails/application.rb
@@ -98,7 +98,7 @@ module Rails
def plugins
@plugins ||= begin
plugin_names = config.plugins || [:all]
- Plugin.plugins.select { |p| plugin_names.include?(:all) || plugin_names.include?(p.plugin_name) } +
+ Plugin.plugins.select { |p| plugin_names.include?(:all) || plugin_names.include?(p.plugin_name) }.map { |p| p.new } +
Plugin::Vendored.all(config.plugins || [:all], config.paths.vendor.plugins)
end
end
diff --git a/railties/lib/rails/plugin.rb b/railties/lib/rails/plugin.rb
index be6cdec3fa..b5e6953fef 100644
--- a/railties/lib/rails/plugin.rb
+++ b/railties/lib/rails/plugin.rb
@@ -27,12 +27,17 @@ module Rails
def self.rake_tasks(&blk)
@rake_tasks ||= []
- @rake_tasks << blk
+ @rake_tasks << blk if blk
+ @rake_tasks
end
- def self.load_tasks
- return unless @rake_tasks
- @rake_tasks.each { |blk| blk.call }
+ def rake_tasks
+ self.class.rake_tasks
+ end
+
+ def load_tasks
+ return unless rake_tasks
+ rake_tasks.each { |blk| blk.call }
end
# Creates an initializer which includes all given modules to the given class.