diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2015-08-07 07:55:09 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2015-08-07 07:55:19 -0700 |
commit | 9b7ecf0d6d284825a2e1ce57c0074b8f945a791f (patch) | |
tree | 78eac996b19e2098280b246b833d3ba2e3e78935 /actionpack/lib/action_dispatch/middleware | |
parent | 85969c74cdd29776790165b7ef1d833ccacb1585 (diff) | |
download | rails-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.rb | 19 |
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 |