aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2015-08-12 10:43:55 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2015-08-12 14:30:53 -0700
commitc10d7d16908c6858428331b3cdb056bd059aba63 (patch)
tree6672b95d253e2eb72bf89eb015266a280347dea5 /actionpack
parentb9a622f817b28b7796c5d5c78ec294b35ae7dfe2 (diff)
downloadrails-c10d7d16908c6858428331b3cdb056bd059aba63.tar.gz
rails-c10d7d16908c6858428331b3cdb056bd059aba63.tar.bz2
rails-c10d7d16908c6858428331b3cdb056bd059aba63.zip
remove side effects from `normalize_format`
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/lib/action_dispatch/routing/mapper.rb22
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