diff options
Diffstat (limited to 'railties/lib/rails/engine.rb')
-rw-r--r-- | railties/lib/rails/engine.rb | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/railties/lib/rails/engine.rb b/railties/lib/rails/engine.rb index 4fc23fe277..d0b245c595 100644 --- a/railties/lib/rails/engine.rb +++ b/railties/lib/rails/engine.rb @@ -434,10 +434,45 @@ module Rails def routes @routes ||= ActionDispatch::Routing::RouteSet.new + @routes.add_route(assets, {}, {}, {}, nil, false) @routes.append(&Proc.new) if block_given? @routes end + def self.default_sprockets_paths + [ + "app/assets", + "app/assets/javascripts", + "app/assets/stylesheets", + "vendor/plugins/*/app/assets", + "vendor/plugins/*/app/assets/javascripts", + "vendor/plugins/*/app/assets/stylesheets", + "vendor/plugins/*/assets", + "vendor/plugins/*/assets/javascripts", + "vendor/plugins/*/assets/stylesheets" + ] + end + + def assets + @assets ||= build_asset_environment + end + + def build_asset_environment + require 'sprockets' + + env = Sprockets::Environment.new(root.to_s) + env.logger = Rails.logger + env.static_root = root.join("public") + + self.class.default_sprockets_paths.each do |pattern| + Dir[root.join(pattern)].each do |dir| + env.paths << dir + end + end + + env + end + def initializers initializers = [] railties.all { |r| initializers += r.initializers } |