diff --git a/actionmailer/lib/action_mailer/railtie.rb b/actionmailer/lib/action_mailer/railtie.rb index a2b00addc9c9026523dfbec22c59b39e24eb69fc..889ae344077191560420da4bf612a0cb930c0a22 100644 --- a/actionmailer/lib/action_mailer/railtie.rb +++ b/actionmailer/lib/action_mailer/railtie.rb @@ -21,7 +21,7 @@ class Railtie < Rails::Railtie ActiveSupport.on_load(:action_mailer) do include AbstractController::UrlFor extend ::AbstractController::Railties::RoutesHelpers.with(app.routes) - include app.routes.mounted_helpers(:app) + include app.routes.mounted_helpers options.each { |k,v| send("#{k}=", v) } end end diff --git a/actionpack/lib/action_controller/railtie.rb b/actionpack/lib/action_controller/railtie.rb index d26b7e2486473500ee96786bfd095d04ffd5d243..aea28d926588ddc9732ba621d7687896943e5097 100644 --- a/actionpack/lib/action_controller/railtie.rb +++ b/actionpack/lib/action_controller/railtie.rb @@ -27,7 +27,7 @@ class Railtie < Rails::Railtie options.page_cache_directory ||= paths.public.to_a.first ActiveSupport.on_load(:action_controller) do - include app.routes.mounted_helpers(:app) + include app.routes.mounted_helpers extend ::AbstractController::Railties::RoutesHelpers.with(app.routes) extend ::ActionController::Railties::Paths.with(app) options.each { |k,v| send("#{k}=", v) } diff --git a/actionpack/lib/action_dispatch/routing/route_set.rb b/actionpack/lib/action_dispatch/routing/route_set.rb index 956bd2e719365d9b399895230a877fb7e9ea8a49..835ba03784d1303602b8afab4fb38534af3aa114 100644 --- a/actionpack/lib/action_dispatch/routing/route_set.rb +++ b/actionpack/lib/action_dispatch/routing/route_set.rb @@ -262,7 +262,7 @@ def install_helpers(destinations = [ActionController::Base, ActionView::Base], r module MountedHelpers end - def mounted_helpers(name = nil) + def mounted_helpers(name = :main_app) define_mounted_helper(name) if name MountedHelpers end diff --git a/actionpack/test/dispatch/prefix_generation_test.rb b/actionpack/test/dispatch/prefix_generation_test.rb index 3b47a1b72d7258a81bd77590546a50a6f6459624..26d76557dd097d8b113dcc695f42d488098fb72a 100644 --- a/actionpack/test/dispatch/prefix_generation_test.rb +++ b/actionpack/test/dispatch/prefix_generation_test.rb @@ -72,7 +72,7 @@ def klass.name; self end class ::InsideEngineGeneratingController < ActionController::Base include BlogEngine.routes.url_helpers - include RailsApplication.routes.mounted_helpers(:app) + include RailsApplication.routes.mounted_helpers def index render :text => posts_path @@ -83,9 +83,9 @@ def show end def url_to_application - path = app.url_for( :controller => "outside_engine_generating", - :action => "index", - :only_path => true) + path = main_app.url_for(:controller => "outside_engine_generating", + :action => "index", + :only_path => true) render :text => path end diff --git a/railties/lib/rails/application/configuration.rb b/railties/lib/rails/application/configuration.rb index 477bbbc1e7a7cb96856cbd6240a32e238bfd6c6f..f9f06299a0301cdbc2ddb95e1ba77d922f48fc5f 100644 --- a/railties/lib/rails/application/configuration.rb +++ b/railties/lib/rails/application/configuration.rb @@ -23,6 +23,7 @@ def initialize(*) @session_options = {} @time_zone = "UTC" @middleware = app_middleware + @asset_path = '/' end def asset_path=(value) diff --git a/railties/test/application/initializers/frameworks_test.rb b/railties/test/application/initializers/frameworks_test.rb index 61340e82c3b40dfd2d36fe56b637b1ee115fa227..6970ea7b7acc6daad67024375f94e92058c31d8f 100644 --- a/railties/test/application/initializers/frameworks_test.rb +++ b/railties/test/application/initializers/frameworks_test.rb @@ -61,7 +61,7 @@ def notify require "#{app_path}/config/environment" assert Foo.method_defined?(:foo_path) - assert Foo.method_defined?(:app) + assert Foo.method_defined?(:main_app) assert_equal ["notify"], Foo.action_methods end diff --git a/railties/test/application/routing_test.rb b/railties/test/application/routing_test.rb index d0c6cb51ca0d42e17b3d66fbeaf4879b5ab37045..b4ff14409f8b1608d006a4d5877ec52379b2fe4d 100644 --- a/railties/test/application/routing_test.rb +++ b/railties/test/application/routing_test.rb @@ -203,7 +203,7 @@ def baz assert_equal 'bar', last_response.body app_file 'config/routes.rb', <<-RUBY - AppTemplate::Application.routes.draw do |map| + AppTemplate::Application.routes.draw do match 'foo', :to => 'foo#baz' end RUBY diff --git a/railties/test/railties/engine_test.rb b/railties/test/railties/engine_test.rb index fabd561bd2c6f51a05abd519e993d285f0f69f74..6fc166e054729f86b61dca9f632c4f6d8f7bdae8 100644 --- a/railties/test/railties/engine_test.rb +++ b/railties/test/railties/engine_test.rb @@ -281,6 +281,34 @@ def index assert_equal expected, stripped_body end + test "default application's asset_path" do + @plugin.write "config/routes.rb", <<-RUBY + Bukkits::Engine.routes.draw do + match "/foo" => "foo#index" + end + RUBY + + @plugin.write "app/controllers/foo_controller.rb", <<-RUBY + class FooController < ActionController::Base + def index + end + end + RUBY + + @plugin.write "app/views/foo/index.html.erb", <<-RUBY + <%= compute_public_path("/foo", "") %> + RUBY + + boot_rails + + env = Rack::MockRequest.env_for("/foo") + response = Bukkits::Engine.call(env) + stripped_body = response[2].body.strip + + expected = "/bukkits/foo" + assert_equal expected, stripped_body + end + test "engine's files are served via ActionDispatch::Static" do add_to_config "config.serve_static_assets = true" @@ -437,7 +465,7 @@ def from_app end def routes_helpers_in_view - render :inline => "<%= foo_path %>, <%= app.bar_path %>" + render :inline => "<%= foo_path %>, <%= main_app.bar_path %>" end def polymorphic_path_without_namespace diff --git a/railties/test/railties/mounted_engine_test.rb b/railties/test/railties/mounted_engine_test.rb index 73b7e5b2e02424550d3cf9263ab5c3b00075ebe8..b52ced92ec2f4214b142f3cc668655e4b0196328 100644 --- a/railties/test/railties/mounted_engine_test.rb +++ b/railties/test/railties/mounted_engine_test.rb @@ -70,14 +70,14 @@ def index end def generate_application_route - path = app.url_for(:controller => "/main", + path = main_app.url_for(:controller => "/main", :action => "index", :only_path => true) render :text => path end def application_route_in_view - render :inline => "<%= app.root_path %>" + render :inline => "<%= main_app.root_path %>" end end end