diff options
author | José Valim <jose.valim@gmail.com> | 2010-01-23 16:59:32 +0100 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2010-01-23 16:59:37 +0100 |
commit | 13d66cdf2544af0d465d596383743b16b5005996 (patch) | |
tree | 32a44fbf28cc65679caa665acaefa6af2df38a64 /railties/lib/rails/application/railties.rb | |
parent | 4f036032152518791d379f47260236f619713fbb (diff) | |
download | rails-13d66cdf2544af0d465d596383743b16b5005996.tar.gz rails-13d66cdf2544af0d465d596383743b16b5005996.tar.bz2 rails-13d66cdf2544af0d465d596383743b16b5005996.zip |
Extract Railtie load from application.
Diffstat (limited to 'railties/lib/rails/application/railties.rb')
-rw-r--r-- | railties/lib/rails/application/railties.rb | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/railties/lib/rails/application/railties.rb b/railties/lib/rails/application/railties.rb new file mode 100644 index 0000000000..d167d9bf4f --- /dev/null +++ b/railties/lib/rails/application/railties.rb @@ -0,0 +1,31 @@ +module Rails + class Application + class Railties + # TODO Write tests + def initialize(config) + @config = config + end + + def all(&block) + @all ||= railties + engines + plugins + @all.each(&block) if block + @all + end + + def railties + @railties ||= ::Rails::Railtie.subclasses.map(&:new) + end + + def engines + @engines ||= ::Rails::Engine.subclasses.map(&:new) + end + + def plugins + @plugins ||= begin + plugin_names = (@config.plugins || [:all]).map { |p| p.to_sym } + Plugin.all(plugin_names, @config.paths.vendor.plugins) + end + end + end + end +end
\ No newline at end of file |