Class: Rack::Reducer::Reduction

Inherits:
Object
  • Object
show all
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: [],
  params: nil
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Reduction

Returns a new instance of Reduction.



17
18
19
20
# File 'lib/rack/reducer/reduction.rb', line 17

def initialize(options)
  @props = DEFAULTS.merge(options)
  @params = Parser.call(@props[:params])
end

Instance Method Details

#reduceObject



22
23
24
# File 'lib/rack/reducer/reduction.rb', line 22

def reduce
  @props[:filters].reduce(@props[:dataset], &method(:apply_filter))
end