Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Set asset_path to engine_name by default

  • Loading branch information...
commit 5b6553ebb57037efc171e67b0f4b662f74bcb9a0 1 parent 559979b
@drogus drogus authored
Showing with 31 additions and 14 deletions.
  1. +5 −1 railties/lib/rails/engine.rb
  2. +26 −13 railties/test/railties/engine_test.rb
View
6 railties/lib/rails/engine.rb
@@ -256,7 +256,11 @@ def initializers
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.
View
39 railties/test/railties/engine_test.rb
@@ -84,11 +84,13 @@ class Engine < ::Rails::Engine
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 @@ class Engine < ::Rails::Engine
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 @@ class Engine < ::Rails::Engine
@plugin.write "lib/bukkits.rb", <<-RUBY
class Bukkits
class Engine < ::Rails::Engine
- config.asset_path = "/bukkits%s"
end
end
RUBY
@@ -247,8 +252,17 @@ def index
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 @@ def index
"<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
Please sign in to comment.
Something went wrong with that request. Please try again.