Module: Rack::Reducer
- Defined in:
- lib/rack/reducer.rb,
lib/rack/reducer/parser.rb,
lib/rack/reducer/version.rb,
lib/rack/reducer/reduction.rb,
lib/rack/reducer/middleware.rb,
lib/rack/reducer/refinements.rb
Overview
Use request params to apply filters to a dataset
Defined Under Namespace
Modules: Parser, Refinements Classes: Middleware, Reduction
Constant Summary collapse
- VERSION =
'1.0.0'.freeze
Class Method Summary collapse
-
.call(params, dataset:, filters:) ⇒ Object
Call Rack::Reducer as a function.
-
.new(app, options = {}) ⇒ Object
Mount Rack::Reducer as middleware.
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
8 9 10 11 12 13 14 |
# File 'lib/rack/reducer.rb', line 8 def self.call(params, dataset:, filters:) Reduction.new( params: params, filters: filters, dataset: dataset ).reduce end |
.new(app, options = {}) ⇒ Object
Mount Rack::Reducer as middleware
17 18 19 |
# File 'lib/rack/reducer.rb', line 17 def self.new(app, = {}) Middleware.new(app, ) end |
Instance Method Details
#reduce(params) ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/rack/reducer.rb', line 30 def reduce(params) Reduction.new( params: params, filters: @rack_reducer_filters, dataset: @rack_reducer_dataset ).reduce end |
#reduces(dataset, filters:) ⇒ Object
38 39 40 41 |
# File 'lib/rack/reducer.rb', line 38 def reduces(dataset, filters:) @rack_reducer_dataset = dataset @rack_reducer_filters = filters end |