aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/engine.rb
diff options
context:
space:
mode:
Diffstat (limited to 'railties/lib/rails/engine.rb')
-rw-r--r--railties/lib/rails/engine.rb35
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 }