Class: LightService::Organizer::ReduceCase
- Inherits:
-
Object
- Object
- LightService::Organizer::ReduceCase
- Extended by:
- ScopedReducable
- Defined in:
- lib/light-service/organizer/reduce_case.rb
Defined Under Namespace
Classes: Arguments
Class Method Summary collapse
Methods included from ScopedReducable
Class Method Details
.run(organizer, **args) ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/light-service/organizer/reduce_case.rb', line 32 def self.run(organizer, **args) arguments = Arguments.new(**args) lambda do |ctx| return ctx if ctx.stop_processing? matched_case = arguments.when.keys.find { |k| k.eql?(ctx[arguments.value]) } steps = arguments.when[matched_case] || arguments.else ctx = scoped_reduce(organizer, ctx, steps) ctx end end |