2010-06-23 14:10:26 +00:00
|
|
|
module Rails
|
|
|
|
class Engine < Railtie
|
|
|
|
class Railties
|
|
|
|
# TODO Write tests for this behavior extracted from Application
|
|
|
|
def initialize(config)
|
|
|
|
@config = config
|
|
|
|
end
|
|
|
|
|
|
|
|
def all(&block)
|
|
|
|
@all ||= plugins
|
|
|
|
@all.each(&block) if block
|
|
|
|
@all
|
|
|
|
end
|
|
|
|
|
|
|
|
def plugins
|
|
|
|
@plugins ||= begin
|
|
|
|
plugin_names = (@config.plugins || [:all]).map { |p| p.to_sym }
|
2010-10-06 15:18:59 +00:00
|
|
|
Plugin.all(plugin_names, @config.paths["vendor/plugins"].existent)
|
2010-06-23 14:10:26 +00:00
|
|
|
end
|
|
|
|
end
|
2010-12-08 22:15:13 +00:00
|
|
|
|
|
|
|
def self.railties
|
|
|
|
@railties ||= ::Rails::Railtie.subclasses.map(&:instance)
|
|
|
|
end
|
|
|
|
|
|
|
|
def self.engines
|
|
|
|
@engines ||= ::Rails::Engine.subclasses.map(&:instance)
|
|
|
|
end
|
|
|
|
|
|
|
|
delegate :railties, :engines, :to => "self.class"
|
2010-06-23 14:10:26 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|