diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2015-08-17 13:20:09 -0300 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2015-08-17 13:20:09 -0300 |
commit | 15fd2586a89f27031adc5fca8e03149b3c494fdb (patch) | |
tree | 0d1eeb1554da0187325d4e59a112591416eef438 /actionpack | |
parent | 7985908beac7a625f545097dba9460c4355d70e4 (diff) | |
parent | 9366d622bef3322284dcb4d34c8b1a383d04590c (diff) | |
download | rails-15fd2586a89f27031adc5fca8e03149b3c494fdb.tar.gz rails-15fd2586a89f27031adc5fca8e03149b3c494fdb.tar.bz2 rails-15fd2586a89f27031adc5fca8e03149b3c494fdb.zip |
Merge pull request #21252 from rodzyn/improve_params_parser
Improve params parser
Diffstat (limited to 'actionpack')
-rw-r--r-- | actionpack/lib/action_dispatch/middleware/params_parser.rb | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/actionpack/lib/action_dispatch/middleware/params_parser.rb b/actionpack/lib/action_dispatch/middleware/params_parser.rb index e65279a285..402ad778fa 100644 --- a/actionpack/lib/action_dispatch/middleware/params_parser.rb +++ b/actionpack/lib/action_dispatch/middleware/params_parser.rb @@ -1,9 +1,14 @@ -require 'active_support/core_ext/hash/conversions' require 'action_dispatch/http/request' -require 'active_support/core_ext/hash/indifferent_access' module ActionDispatch + # ActionDispatch::ParamsParser works for all the requests having any Content-Length + # (like POST). It takes raw data from the request and puts it through the parser + # that is picked based on Content-Type header. + # + # In case of any error while parsing data ParamsParser::ParseError is raised. class ParamsParser + # Raised when raw data from the request cannot be parsed by the parser + # defined for request's content mime type. class ParseError < StandardError attr_reader :original_exception @@ -21,6 +26,10 @@ module ActionDispatch } } + # Create a new +ParamsParser+ middleware instance. + # + # The +parsers+ argument can take Hash of parsers where key is identifying + # content mime type, and value is a lambda that is going to process data. def initialize(app, parsers = {}) @app, @parsers = app, DEFAULT_PARSERS.merge(parsers) end |