Allow a route to have :format => true

When format is true, it is mandatory (as opposed to :format => false).
This is currently not possible with resource routes, which automatically
make format optional by default.
This commit is contained in:
Erik Michaels-Ober 2011-07-25 11:37:25 -07:00
parent 8e0061128e
commit b9c9142603
2 changed files with 9 additions and 0 deletions

View File

@ -119,6 +119,8 @@ module ActionDispatch
path
elsif path.include?(":format") || path.end_with?('/')
path
elsif @options[:format] == true
"#{path}.:format"
else
"#{path}(.:format)"
end

View File

@ -83,6 +83,13 @@ module ActionDispatch
assert_equal '/*path', fakeset.conditions.first[:path_info]
assert_nil fakeset.requirements.first[:path]
end
def test_map_wildcard_with_format_true
fakeset = FakeSet.new
mapper = Mapper.new fakeset
mapper.match '/*path', :to => 'pages#show', :format => true
assert_equal '/*path.:format', fakeset.conditions.first[:path_info]
end
end
end
end