aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2013-01-25 10:31:38 -0800
committerAaron Patterson <aaron.patterson@gmail.com>2013-01-30 10:24:57 -0800
commit3bfdfc869b5c9fcd8397710aa7b0d211d549aa45 (patch)
treeed62106f507ab6ace2989e27234fb5b83a065fc4
parent026c40fc1887b19af0f9a73a616d736f4ac4f5b4 (diff)
downloadrails-3bfdfc869b5c9fcd8397710aa7b0d211d549aa45.tar.gz
rails-3bfdfc869b5c9fcd8397710aa7b0d211d549aa45.tar.bz2
rails-3bfdfc869b5c9fcd8397710aa7b0d211d549aa45.zip
pushing specialization down to the optimized class
-rw-r--r--actionpack/lib/action_dispatch/routing/route_set.rb48
1 files changed, 25 insertions, 23 deletions
diff --git a/actionpack/lib/action_dispatch/routing/route_set.rb b/actionpack/lib/action_dispatch/routing/route_set.rb
index e2b2914cad..3e88b0d4c9 100644
--- a/actionpack/lib/action_dispatch/routing/route_set.rb
+++ b/actionpack/lib/action_dispatch/routing/route_set.rb
@@ -194,41 +194,43 @@ module ActionDispatch
super
end
end
- end
- def initialize(route, options)
- @options = options
- @segment_keys = route.segment_keys
- @route = route
- end
+ private
- def arg_size
- @route.required_parts.size
- end
+ def optimized_helper
+ string_route = @route.ast.to_s
- def optimized_helper
- string_route = @route.ast.to_s
+ while string_route.gsub!(/\([^\)]*\)/, "")
+ true
+ end
+
+ @route.required_parts.each_with_index do |part, i|
+ # Replace each route parameter
+ # e.g. :id for regular parameter or *path for globbing
+ # with ruby string interpolation code
+ string_route.gsub!(/(\*|:)#{part}/, "\#{Journey::Router::Utils.escape_fragment(args[#{i}].to_param)}")
+ end
- while string_route.gsub!(/\([^\)]*\)/, "")
- true
+ string_route
end
- @route.required_parts.each_with_index do |part, i|
- # Replace each route parameter
- # e.g. :id for regular parameter or *path for globbing
- # with ruby string interpolation code
- string_route.gsub!(/(\*|:)#{part}/, "\#{Journey::Router::Utils.escape_fragment(args[#{i}].to_param)}")
+ def arg_size
+ @route.required_parts.size
end
- string_route
+ def optimize_routes_generation?(t)
+ t.send(:optimize_routes_generation?)
+ end
end
- def call(t, args)
- t.url_for(handle_positional_args(t, args, @options, @segment_keys))
+ def initialize(route, options)
+ @options = options
+ @segment_keys = route.segment_keys
+ @route = route
end
- def optimize_routes_generation?(t)
- t.send(:optimize_routes_generation?)
+ def call(t, args)
+ t.url_for(handle_positional_args(t, args, @options, @segment_keys))
end
def handle_positional_args(t, args, options, segment_keys)