aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcin Olichwirowicz <olichwirowicz@gmail.com>2015-08-15 20:41:19 +0200
committerMarcin Olichwirowicz <olichwirowicz@gmail.com>2015-08-17 11:38:37 +0200
commit9366d622bef3322284dcb4d34c8b1a383d04590c (patch)
treef20ee9cdd2b3e6d3870eafbd83de57bd81828ede
parentf6232a518bb7377948f339d2b0b25dc607e1e42a (diff)
downloadrails-9366d622bef3322284dcb4d34c8b1a383d04590c.tar.gz
rails-9366d622bef3322284dcb4d34c8b1a383d04590c.tar.bz2
rails-9366d622bef3322284dcb4d34c8b1a383d04590c.zip
Cleanup ActionDispatch:ParamsParser
-rw-r--r--actionpack/lib/action_dispatch/middleware/params_parser.rb13
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