From 37654d12ae95f751a91167a68bfb8d1bfd168d9c Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Mon, 2 Mar 2015 11:01:07 -0800 Subject: ask the routes objects for its Rack env key this centralizes the logic for determining the script name key and drops object allocations when calling `engine_script_name` (which is called on each `url_for`). --- actionpack/lib/action_dispatch/http/request.rb | 2 +- actionpack/lib/action_dispatch/routing/route_set.rb | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'actionpack/lib/action_dispatch') diff --git a/actionpack/lib/action_dispatch/http/request.rb b/actionpack/lib/action_dispatch/http/request.rb index 07b3814ca4..732ee67268 100644 --- a/actionpack/lib/action_dispatch/http/request.rb +++ b/actionpack/lib/action_dispatch/http/request.rb @@ -114,7 +114,7 @@ module ActionDispatch end def engine_script_name(_routes) # :nodoc: - env["ROUTES_#{_routes.object_id}_SCRIPT_NAME"] + env[_routes.env_key] end def request_method=(request_method) #:nodoc: diff --git a/actionpack/lib/action_dispatch/routing/route_set.rb b/actionpack/lib/action_dispatch/routing/route_set.rb index ce04f0b08a..7eb61af770 100644 --- a/actionpack/lib/action_dispatch/routing/route_set.rb +++ b/actionpack/lib/action_dispatch/routing/route_set.rb @@ -308,6 +308,7 @@ module ActionDispatch attr_accessor :formatter, :set, :named_routes, :default_scope, :router attr_accessor :disable_clear_and_finalize, :resources_path_names attr_accessor :default_url_options, :request_class + attr_reader :env_key alias :routes :set @@ -325,6 +326,7 @@ module ActionDispatch @prepend = [] @disable_clear_and_finalize = false @finalized = false + @env_key = "ROUTES_#{object_id}_SCRIPT_NAME".freeze @set = Journey::Routes.new @router = Journey::Router.new @set -- cgit v1.2.3