aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch/middleware
diff options
context:
space:
mode:
authorAaron Patterson <aaron.patterson@gmail.com>2015-08-07 07:55:09 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2015-08-07 07:55:19 -0700
commit9b7ecf0d6d284825a2e1ce57c0074b8f945a791f (patch)
tree78eac996b19e2098280b246b833d3ba2e3e78935 /actionpack/lib/action_dispatch/middleware
parent85969c74cdd29776790165b7ef1d833ccacb1585 (diff)
downloadrails-9b7ecf0d6d284825a2e1ce57c0074b8f945a791f.tar.gz
rails-9b7ecf0d6d284825a2e1ce57c0074b8f945a791f.tar.bz2
rails-9b7ecf0d6d284825a2e1ce57c0074b8f945a791f.zip
refactor param parsing middleware to use request objects
this is another place that we should stop directly accessing the env hash and let the request object take care of that for us
Diffstat (limited to 'actionpack/lib/action_dispatch/middleware')
-rw-r--r--actionpack/lib/action_dispatch/middleware/params_parser.rb19
1 files changed, 9 insertions, 10 deletions
diff --git a/actionpack/lib/action_dispatch/middleware/params_parser.rb b/actionpack/lib/action_dispatch/middleware/params_parser.rb
index 2617956c74..e65279a285 100644
--- a/actionpack/lib/action_dispatch/middleware/params_parser.rb
+++ b/actionpack/lib/action_dispatch/middleware/params_parser.rb
@@ -26,30 +26,29 @@ module ActionDispatch
end
def call(env)
- default = env["action_dispatch.request.request_parameters"]
- env["action_dispatch.request.request_parameters"] = parse_formatted_parameters(env, @parsers, default)
+ request = Request.new(env)
+
+ request.request_parameters = parse_formatted_parameters(request, @parsers)
@app.call(env)
end
private
- def parse_formatted_parameters(env, parsers, default)
- request = Request.new(env)
-
- return default if request.content_length.zero?
+ def parse_formatted_parameters(request, parsers)
+ return if request.content_length.zero?
- strategy = parsers.fetch(request.content_mime_type) { return default }
+ strategy = parsers.fetch(request.content_mime_type) { return nil }
strategy.call(request.raw_post)
rescue => e # JSON or Ruby code block errors
- logger(env).debug "Error occurred while parsing request parameters.\nContents:\n\n#{request.raw_post}"
+ logger(request).debug "Error occurred while parsing request parameters.\nContents:\n\n#{request.raw_post}"
raise ParseError.new(e.message, e)
end
- def logger(env)
- env['action_dispatch.logger'] || ActiveSupport::Logger.new($stderr)
+ def logger(request)
+ request.logger || ActiveSupport::Logger.new($stderr)
end
end
end