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.



19
20
21
22
# File 'lib/rack/reducer/reduction.rb', line 19

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

Instance Method Details

#reduceObject



24
25
26
# File 'lib/rack/reducer/reduction.rb', line 24

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