From c10d7d16908c6858428331b3cdb056bd059aba63 Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Wed, 12 Aug 2015 10:43:55 -0700 Subject: remove side effects from `normalize_format` --- actionpack/lib/action_dispatch/routing/mapper.rb | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'actionpack') 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 -- cgit v1.2.3