class Rails::Engine::Railties

def self.engines

def self.engines
  @engines ||= ::Rails::Engine.subclasses.map(&:instance)
end

def self.railties

def self.railties
  @railties ||= ::Rails::Railtie.subclasses.map(&:instance)
end

def all(&block)

def all(&block)
  @all ||= plugins
  @all.each(&block) if block
  @all
end

def initialize(config)

TODO Write tests for this behavior extracted from Application
def initialize(config)
  @config = config
end

def plugins

def plugins
  @plugins ||= begin
    plugin_names = (@config.plugins || [:all]).map { |p| p.to_sym }
    Plugin.all(plugin_names, @config.paths["vendor/plugins"].existent)
  end
end