1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Remove hardcoded number_of_capturesin ControllerSegment to allow regexp requirements with capturing parentheses

Signed-off-by: Michael Koziarski <michael@koziarski.com>
[#1887 state:committed]
This commit is contained in:
Andrew White 2009-02-07 14:44:50 +00:00 committed by Michael Koziarski
parent fc09ebc669
commit f7a0a394f4
2 changed files with 9 additions and 4 deletions

View file

@ -244,10 +244,6 @@ module ActionController
"(?i-:(#{(regexp || Regexp.union(*possible_names)).source}))"
end
def number_of_captures
1
end
# Don't URI.escape the controller name since it may contain slashes.
def interpolation_chunk(value_code = local_name)
"\#{#{value_code}.to_s}"

View file

@ -852,6 +852,15 @@ class LegacyRouteSetTests < Test::Unit::TestCase
assert_equal '/content/foo', rs.generate(:controller => "content", :action => "foo")
end
def test_route_with_regexp_and_captures_for_controller
rs.draw do |map|
map.connect ':controller/:action/:id', :controller => /admin\/(accounts|users)/
end
assert_equal({:controller => "admin/accounts", :action => "index"}, rs.recognize_path("/admin/accounts"))
assert_equal({:controller => "admin/users", :action => "index"}, rs.recognize_path("/admin/users"))
assert_raises(ActionController::RoutingError) { rs.recognize_path("/admin/products") }
end
def test_route_with_regexp_and_dot
rs.draw do |map|
map.connect ':controller/:action/:file',