class Rails::Application::Railties

def all(&block)

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

def engines

def engines
  @engines ||= ::Rails::Engine.subclasses.map(&:new)
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)
  end
end

def railties

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