diff options
author | Piotr Sarnacki <drogus@gmail.com> | 2010-07-28 19:36:13 +0200 |
---|---|---|
committer | Piotr Sarnacki <drogus@gmail.com> | 2010-09-03 22:59:09 +0200 |
commit | 5b6553ebb57037efc171e67b0f4b662f74bcb9a0 (patch) | |
tree | a83ae368a0503060466aa3c84e528504075b1efb | |
parent | 559979b9844486a920993fdbcb719cb527b837c5 (diff) | |
download | rails-5b6553ebb57037efc171e67b0f4b662f74bcb9a0.tar.gz rails-5b6553ebb57037efc171e67b0f4b662f74bcb9a0.tar.bz2 rails-5b6553ebb57037efc171e67b0f4b662f74bcb9a0.zip |
Set asset_path to engine_name by default
-rw-r--r-- | railties/lib/rails/engine.rb | 6 | ||||
-rw-r--r-- | railties/test/railties/engine_test.rb | 39 |
2 files changed, 31 insertions, 14 deletions
diff --git a/railties/lib/rails/engine.rb b/railties/lib/rails/engine.rb index de16c55990..49553a57f3 100644 --- a/railties/lib/rails/engine.rb +++ b/railties/lib/rails/engine.rb @@ -256,7 +256,11 @@ module Rails end def config - @config ||= Engine::Configuration.new(find_root_with_flag("lib")) + @config ||= begin + config = Engine::Configuration.new(find_root_with_flag("lib")) + config.asset_path = "/#{engine_name}%s" if File.exists?(config.paths.public.to_a.first) + config + end end # Add configured load paths to ruby load paths and remove duplicates. diff --git a/railties/test/railties/engine_test.rb b/railties/test/railties/engine_test.rb index d83c2e92ba..788bc77620 100644 --- a/railties/test/railties/engine_test.rb +++ b/railties/test/railties/engine_test.rb @@ -84,11 +84,13 @@ module RailtiesTest end RUBY - boot_rails + app_file "config/routes.rb", <<-RUBY + AppTemplate::Application.routes.draw do + mount(Bukkits::Engine => "/bukkits") + end + RUBY - Rails.application.routes.draw do |map| - mount(Bukkits::Engine => "/bukkits") - end + boot_rails env = Rack::MockRequest.env_for("/bukkits") response = Rails.application.call(env) @@ -104,15 +106,19 @@ module RailtiesTest end RUBY - boot_rails + @plugin.write "config/routes.rb", <<-RUBY + Bukkits::Engine.routes.draw do + match "/foo" => lambda { |env| [200, {'Content-Type' => 'text/html'}, 'foo'] } + end + RUBY - Bukkits::Engine.routes.draw do |map| - match "/foo" => lambda { |env| [200, {'Content-Type' => 'text/html'}, 'foo'] } - end + app_file "config/routes.rb", <<-RUBY + Rails.application.routes.draw do + mount(Bukkits::Engine => "/bukkits") + end + RUBY - Rails.application.routes.draw do |map| - mount(Bukkits::Engine => "/bukkits") - end + boot_rails env = Rack::MockRequest.env_for("/bukkits/foo") response = Rails.application.call(env) @@ -205,7 +211,6 @@ module RailtiesTest @plugin.write "lib/bukkits.rb", <<-RUBY class Bukkits class Engine < ::Rails::Engine - config.asset_path = "/bukkits%s" end end RUBY @@ -247,8 +252,17 @@ module RailtiesTest add_to_config 'config.asset_path = "/omg%s"' + @plugin.write 'public/touch.txt', <<-RUBY + touch + RUBY + boot_rails + # should set asset_path with engine name by default + assert_equal "/bukkits_engine%s", ::Bukkits::Engine.config.asset_path + + ::Bukkits::Engine.config.asset_path = "/bukkits%s" + env = Rack::MockRequest.env_for("/foo") response = Bukkits::Engine.call(env) stripped_body = response[2].body.split("\n").map(&:strip).join("\n") @@ -258,7 +272,6 @@ module RailtiesTest "<script src=\"/omg/bukkits/javascripts/foo.js\" type=\"text/javascript\"></script>\n" + "<link href=\"/omg/bukkits/stylesheets/foo.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\" />" assert_equal expected, stripped_body - end end end |