aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch/routing/mapper.rb
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2014-05-30 11:16:20 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2014-06-03 11:33:51 -0700
commitfb9f01b6c4f5a82c5bb435aa38526c656ace1b3d (patch)
tree11783c97d4bb58c854287dcdba5e2c6cc39b32d0 /actionpack/lib/action_dispatch/routing/mapper.rb
parent2c32e94b892c873bd62d13db31ace75d59e8b576 (diff)
downloadrails-fb9f01b6c4f5a82c5bb435aa38526c656ace1b3d.tar.gz
rails-fb9f01b6c4f5a82c5bb435aa38526c656ace1b3d.tar.bz2
rails-fb9f01b6c4f5a82c5bb435aa38526c656ace1b3d.zip
pull up via extraction and remove it from options / IGNORE_OPTIONS
Diffstat (limited to 'actionpack/lib/action_dispatch/routing/mapper.rb')
-rw-r--r--actionpack/lib/action_dispatch/routing/mapper.rb14
1 files changed, 6 insertions, 8 deletions
diff --git a/actionpack/lib/action_dispatch/routing/mapper.rb b/actionpack/lib/action_dispatch/routing/mapper.rb
index 3754ba1735..ccdbbb6a0b 100644
--- a/actionpack/lib/action_dispatch/routing/mapper.rb
+++ b/actionpack/lib/action_dispatch/routing/mapper.rb
@@ -60,7 +60,7 @@ module ActionDispatch
end
class Mapping #:nodoc:
- IGNORE_OPTIONS = [:via, :on, :constraints, :defaults, :only, :except, :shallow, :shallow_path, :shallow_prefix]
+ IGNORE_OPTIONS = [:on, :constraints, :defaults, :only, :except, :shallow, :shallow_path, :shallow_prefix]
ANCHOR_CHARACTERS_REGEX = %r{\A(\\A|\^)|(\\Z|\\z|\$)\Z}
attr_reader :scope, :options, :requirements, :conditions, :defaults
@@ -78,13 +78,15 @@ module ActionDispatch
@anchor = options.delete :anchor
formatted = options.delete :format
+ via = Array(options.delete(:via) { [] })
path = normalize_path! path, formatted
ast = path_ast path
path_params = path_params ast
@options = normalize_options!(options, formatted, path_params, ast)
normalize_requirements!(path_params, formatted)
- normalize_conditions!(path_params, path, ast)
+
+ normalize_conditions!(path_params, path, ast, via)
normalize_defaults!(formatted)
end
@@ -195,7 +197,7 @@ module ActionDispatch
end
end
- def normalize_conditions!(path_params, path, ast)
+ def normalize_conditions!(path_params, path, ast, via)
@conditions[:path_info] = path
@conditions[:parsed_path_info] = ast
@@ -213,11 +215,7 @@ module ActionDispatch
end
@conditions[:required_defaults] = required_defaults
- via = Array(options[:via]).compact
-
- if via == [:all]
- options.delete(:via)
- else
+ unless via == [:all]
if via.empty?
msg = "You should not use the `match` method in your router without specifying an HTTP method.\n" \
"If you want to expose your action to both GET and POST, add `via: [:get, :post]` option.\n" \