Class: Rack::Reducer::Reduction
- Inherits:
-
Object
- Object
- Rack::Reducer::Reduction
- Defined in:
- lib/rack/reducer/reduction.rb
Overview
call ‘reduce` on a params hash, filtering data via lambdas with matching keyword arguments
Constant Summary collapse
- DEFAULTS =
{ dataset: [], filters: [], key: 'rack.reduction', params: nil }.freeze
Instance Method Summary collapse
-
#call(env) ⇒ Object
when mounted as middleware, set env[@props] to the output of self.reduce, then call the next app in the middleware stack.
-
#initialize(app, props) ⇒ Reduction
constructor
A new instance of Reduction.
- #reduce ⇒ Object
Constructor Details
Instance Method Details
#call(env) ⇒ Object
when mounted as middleware, set env[@props] to the output of self.reduce, then call the next app in the middleware stack
27 28 29 30 |
# File 'lib/rack/reducer/reduction.rb', line 27 def call(env) @params = Rack::Request.new(env).params.symbolize_keys @app.call env.merge(@props[:key] => reduce) end |
#reduce ⇒ Object
32 33 34 |
# File 'lib/rack/reducer/reduction.rb', line 32 def reduce @props[:filters].reduce(@props[:dataset], &method(:apply_filter)) end |