mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
a5311ee86b
Otherwise nested hashes will be same objects for both application and engine, which will result in overwriting each others values on changes.
88 lines
2.7 KiB
Ruby
88 lines
2.7 KiB
Ruby
require 'rails/railtie/configuration'
|
|
|
|
module Rails
|
|
class Engine
|
|
class Configuration < ::Rails::Railtie::Configuration
|
|
attr_reader :root
|
|
attr_writer :middleware, :eager_load_paths, :autoload_once_paths, :autoload_paths
|
|
attr_accessor :plugins, :asset_path
|
|
|
|
def initialize(root=nil)
|
|
super()
|
|
@root = root
|
|
@generators = app_generators.dup
|
|
end
|
|
|
|
# Returns the middleware stack for the engine.
|
|
def middleware
|
|
@middleware ||= Rails::Configuration::MiddlewareStackProxy.new
|
|
end
|
|
|
|
# Holds generators configuration:
|
|
#
|
|
# config.generators do |g|
|
|
# g.orm :datamapper, :migration => true
|
|
# g.template_engine :haml
|
|
# g.test_framework :rspec
|
|
# end
|
|
#
|
|
# If you want to disable color in console, do:
|
|
#
|
|
# config.generators.colorize_logging = false
|
|
#
|
|
def generators #:nodoc
|
|
@generators ||= Rails::Configuration::Generators.new
|
|
yield(@generators) if block_given?
|
|
@generators
|
|
end
|
|
|
|
def paths
|
|
@paths ||= begin
|
|
paths = Rails::Paths::Root.new(@root)
|
|
paths.add "app", :eager_load => true, :glob => "*"
|
|
paths.add "app/controllers", :eager_load => true
|
|
paths.add "app/helpers", :eager_load => true
|
|
paths.add "app/models", :eager_load => true
|
|
paths.add "app/mailers", :eager_load => true
|
|
paths.add "app/views"
|
|
paths.add "lib", :load_path => true
|
|
paths.add "lib/tasks", :glob => "**/*.rake"
|
|
paths.add "config"
|
|
paths.add "config/environments", :glob => "#{Rails.env}.rb"
|
|
paths.add "config/initializers", :glob => "**/*.rb"
|
|
paths.add "config/locales", :glob => "*.{rb,yml}"
|
|
paths.add "config/routes", :with => "config/routes.rb"
|
|
paths.add "db"
|
|
paths.add "db/migrate"
|
|
paths.add "db/seeds", :with => "db/seeds.rb"
|
|
paths.add "public"
|
|
paths.add "public/javascripts"
|
|
paths.add "public/stylesheets"
|
|
paths.add "vendor", :load_path => true
|
|
paths.add "vendor/plugins"
|
|
paths
|
|
end
|
|
end
|
|
|
|
def root=(value)
|
|
@root = paths.path = Pathname.new(value).expand_path
|
|
end
|
|
|
|
def eager_load_paths
|
|
@eager_load_paths ||= paths.eager_load
|
|
end
|
|
|
|
def autoload_once_paths
|
|
@autoload_once_paths ||= paths.autoload_once
|
|
end
|
|
|
|
def autoload_paths
|
|
@autoload_paths ||= paths.autoload_paths
|
|
end
|
|
|
|
def compiled_asset_path
|
|
asset_path % "" if asset_path
|
|
end
|
|
end
|
|
end
|
|
end
|