diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2014-05-30 11:16:20 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2014-06-03 11:33:51 -0700 |
commit | fb9f01b6c4f5a82c5bb435aa38526c656ace1b3d (patch) | |
tree | 11783c97d4bb58c854287dcdba5e2c6cc39b32d0 /actionpack | |
parent | 2c32e94b892c873bd62d13db31ace75d59e8b576 (diff) | |
download | rails-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')
-rw-r--r-- | actionpack/lib/action_dispatch/routing/mapper.rb | 14 |
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" \ |