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
Classes: Middleware
Constant Summary collapse
- VERSION =
'1.0.1'.freeze
Class Method Summary collapse
-
.call(params, dataset:, filters:) ⇒ Object
Filter a dataset.
-
.new(app, options = {}) ⇒ Object
Mount Rack::Reducer as middleware.
Instance Method Summary collapse
-
#reduces(dataset, filters:) ⇒ Object
Extend Rack::Reducer to get
reduceandreducesas class-methods.
Class Method Details
.call(params, dataset:, filters:) ⇒ Object
Filter a dataset
22 23 24 25 26 27 28 |
# File 'lib/rack/reducer.rb', line 22 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
31 32 33 |
# File 'lib/rack/reducer.rb', line 31 def self.new(app, = {}) Middleware.new(app, ) end |
Instance Method Details
#reduces(dataset, filters:) ⇒ Object
Extend Rack::Reducer to get reduce and reduces as class-methods
46 47 48 49 50 51 52 53 54 |
# File 'lib/rack/reducer.rb', line 46 def reduces(dataset, filters:) define_singleton_method :reduce do |params| Reduction.new( params: params, filters: filters, dataset: dataset, ).reduce end end |