diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2009-12-29 15:38:17 -0800 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2009-12-29 15:38:17 -0800 |
commit | 485d244eaec09579d4fcf024c51d9aa05c930f33 (patch) | |
tree | 9e54b0d5f245e6775e9c2c5b714ba557cc77ce1a /railties/lib/rails | |
parent | 0b375725526a2d1d952938610a66291f00849713 (diff) | |
parent | 468bdb3ed8ee20fe4215e62f0f27513c70e2398c (diff) | |
download | rails-485d244eaec09579d4fcf024c51d9aa05c930f33.tar.gz rails-485d244eaec09579d4fcf024c51d9aa05c930f33.tar.bz2 rails-485d244eaec09579d4fcf024c51d9aa05c930f33.zip |
Merge branch 'master' of github.com:rails/rails
Diffstat (limited to 'railties/lib/rails')
-rw-r--r-- | railties/lib/rails/application.rb | 10 | ||||
-rw-r--r-- | railties/lib/rails/plugin.rb | 17 |
2 files changed, 15 insertions, 12 deletions
diff --git a/railties/lib/rails/application.rb b/railties/lib/rails/application.rb index 2d0892282e..d714c5ac41 100644 --- a/railties/lib/rails/application.rb +++ b/railties/lib/rails/application.rb @@ -72,13 +72,7 @@ module Rails def load_tasks require "rails/tasks" - # Load all extension rake tasks - # TODO: Make all plugin objects respond to :load_tasks - plugins.each do |plugin| - plugin.load_tasks if plugin.respond_to? :load_tasks - end - # Load all plugin tasks - Dir["#{root}/vendor/plugins/*/**/tasks/**/*.rake"].sort.each { |ext| load ext } + plugins.each { |p| p.load_tasks } # Load all application tasks # TODO: extract out the path to the rake tasks Dir["#{root}/lib/tasks/**/*.rake"].sort.each { |ext| load ext } @@ -98,7 +92,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..c64042cf7d 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. @@ -80,6 +85,10 @@ module Rails Dir["#{path}/{lib}", "#{path}/app/{models,controllers,helpers}"] end + def load_tasks + Dir["#{path}/**/tasks/**/*.rake"].sort.each { |ext| load ext } + end + initializer :add_to_load_path, :after => :set_autoload_paths do |app| load_paths.each do |path| $LOAD_PATH << path |