Module: Rack::Reducer
- Defined in:
- lib/rack/reducer.rb,
lib/rack/reducer/parser.rb,
lib/rack/reducer/reduction.rb,
lib/rack/reducer/refinements.rb
Overview
use request params to apply filters to a dataset
Defined Under Namespace
Modules: Parser, Refinements Classes: Reduction
Class Method Summary collapse
-
.call(params, dataset:, filters:) ⇒ Object
call Rack::Reducer as a function, instead of mounting it as middleware.
- .new(app, options = {}) ⇒ Object
Instance Method Summary collapse
-
#reduce(params) ⇒ Object
extend Rack::Reducer to get ‘reduce` and `reduces` as class-methods.
- #reduces(dataset, filters:) ⇒ Object
Class Method Details
.call(params, dataset:, filters:) ⇒ Object
call Rack::Reducer as a function, instead of mounting it as middleware
10 11 12 13 14 15 16 17 |
# File 'lib/rack/reducer.rb', line 10 def self.call(params, dataset:, filters:) Reduction.new( nil, # first arg to Reduction is `app`, which is for middleware only params: params, filters: filters, dataset: dataset, ).reduce end |
.new(app, options = {}) ⇒ Object
19 20 21 |
# File 'lib/rack/reducer.rb', line 19 def self.new(app, = {}) Reduction.new(app, ) end |
Instance Method Details
#reduce(params) ⇒ Object
32 33 34 35 36 37 38 39 |
# File 'lib/rack/reducer.rb', line 32 def reduce(params) Reduction.new( nil, params: params, filters: @rack_reducer_filters, dataset: @rack_reducer_dataset ).reduce end |
#reduces(dataset, filters:) ⇒ Object
41 42 43 44 |
# File 'lib/rack/reducer.rb', line 41 def reduces(dataset, filters:) @rack_reducer_dataset = dataset @rack_reducer_filters = filters end |