Module: ExAequo::Base::Enumerable::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
8 9 10 11 12 13 14 15 |
# File 'lib/ex_aequo/base/enumerable/helper.rb', line 8 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
17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/ex_aequo/base/enumerable/helper.rb', line 17 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
29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/ex_aequo/base/enumerable/helper.rb', line 29 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 |