Module: ExAequo::Base::Enumerable::EnumerableHelper

Extended by:
EnumerableHelper
Included in:
EnumerableHelper
Defined in:
lib/ex_aequo/base/enumerable/helper.rb

Instance Method Summary collapse

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