Class: Goliath::Rack::Params
- Inherits:
-
Object
- Object
- Goliath::Rack::Params
- Defined in:
- lib/goliath/rack/params.rb
Overview
A middle ware to parse params. This will parse both the query string parameters and the body and place them into the params hash of the Goliath::Env for the request.
Instance Method Summary (collapse)
- - (Object) call(env)
-
- (Params) initialize(app)
constructor
A new instance of Params.
- - (Object) retrieve_params(env)
Constructor Details
- (Params) initialize(app)
A new instance of Params
17 18 19 |
# File 'lib/goliath/rack/params.rb', line 17 def initialize(app) @app = app end |
Instance Method Details
- (Object) call(env)
21 22 23 24 |
# File 'lib/goliath/rack/params.rb', line 21 def call(env) env['params'] = retrieve_params(env) @app.call(env) end |
- (Object) retrieve_params(env)
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/goliath/rack/params.rb', line 26 def retrieve_params(env) params = {} params.merge!(::Rack::Utils.parse_nested_query(env['QUERY_STRING'])) if env['rack.input'] post_params = ::Rack::Utils::Multipart.parse_multipart(env) unless post_params body = env['rack.input'].read env['rack.input'].rewind post_params = case(env['CONTENT_TYPE']) when URL_ENCODED then ::Rack::Utils.parse_nested_query(body) when JSON_ENCODED then MultiJson.decode(body) else {} end end params.merge!(post_params) end params end |