Module: ExAequo::Base::EnumerableHelper
- Extended by:
- EnumerableHelper
- Included in:
- EnumerableHelper
- Defined in:
- lib/ex_aequo/base/enumerable_helper.rb
Instance Method Summary collapse
- #reduce_until_with_trigger(enum, initial:, end_triggers:, &blk) ⇒ Object
- #reduce_while_simple(enum, initial:, &blk) ⇒ Object
- #reduce_while_with_trigger(enum, initial:, end_triggers:, &blk) ⇒ Object
Instance Method Details
#reduce_until_with_trigger(enum, initial:, end_triggers:, &blk) ⇒ Object
7 8 9 10 11 12 13 14 |
# File 'lib/ex_aequo/base/enumerable_helper.rb', line 7 def reduce_until_with_trigger(enum, initial:, end_triggers:, &blk) f = Fn.mk_fun_pipeline(end_triggers) enum.each do return initial if f.(initial) initial = blk.(initial, it) end initial end |
#reduce_while_simple(enum, initial:, &blk) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/ex_aequo/base/enumerable_helper.rb', line 16 def reduce_while_simple(enum, initial:, &blk) enum.each do val = blk.(initial, it) if val initial = val else return initial end end initial end |
#reduce_while_with_trigger(enum, initial:, end_triggers:, &blk) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/ex_aequo/base/enumerable_helper.rb', line 28 def reduce_while_with_trigger(enum, initial:, end_triggers:, &blk) f = Fn.mk_fun_pipeline(end_triggers) enum.each do val = blk.(initial, it) # p(val:, f: f.(val)) if f.(val) initial = val else return initial end end initial end |