diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2015-08-12 10:43:55 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2015-08-12 14:30:53 -0700 |
commit | c10d7d16908c6858428331b3cdb056bd059aba63 (patch) | |
tree | 6672b95d253e2eb72bf89eb015266a280347dea5 /actionpack/lib/action_dispatch | |
parent | b9a622f817b28b7796c5d5c78ec294b35ae7dfe2 (diff) | |
download | rails-c10d7d16908c6858428331b3cdb056bd059aba63.tar.gz rails-c10d7d16908c6858428331b3cdb056bd059aba63.tar.bz2 rails-c10d7d16908c6858428331b3cdb056bd059aba63.zip |
remove side effects from `normalize_format`
Diffstat (limited to 'actionpack/lib/action_dispatch')
-rw-r--r-- | actionpack/lib/action_dispatch/routing/mapper.rb | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/actionpack/lib/action_dispatch/routing/mapper.rb b/actionpack/lib/action_dispatch/routing/mapper.rb index de8d0abb86..c4872b8c6f 100644 --- a/actionpack/lib/action_dispatch/routing/mapper.rb +++ b/actionpack/lib/action_dispatch/routing/mapper.rb @@ -112,10 +112,11 @@ module ActionDispatch end requirements, conditions = split_constraints path_params, constraints - @requirements = Hash[requirements] - @conditions = Hash[conditions] + formats = normalize_format(formatted) - normalize_format!(formatted) + @requirements = formats[:requirements].merge Hash[requirements] + @conditions = Hash[conditions] + @defaults = formats[:defaults].merge @defaults @conditions[:required_defaults] = (split_options[:required_defaults] || []).map(&:first) @conditions[:path_info] = path @@ -190,16 +191,19 @@ module ActionDispatch end end - def normalize_format!(formatted) + def normalize_format(formatted) case formatted when true - @requirements[:format] ||= /.+/ + { requirements: { format: /.+/ }, + defaults: {} } when Regexp - @requirements[:format] ||= formatted - @defaults[:format] ||= nil + { requirements: { format: formatted }, + defaults: { format: nil } } when String - @requirements[:format] ||= Regexp.compile(formatted) - @defaults[:format] ||= formatted + { requirements: { format: Regexp.compile(formatted) }, + defaults: { format: formatted } } + else + { requirements: { }, defaults: { } } end end |