Module: Underware

Defined in:
lib/underware.rb

Defined Under Namespace

Classes: BaseMW, Folded

Constant Summary collapse

DoNothing =

Just a generic do-nothing lambda

->(*args){ }

Class Method Summary collapse

Class Method Details

.exec_underware(mws, *args, &block) ⇒ Object Also known as: exec



46
47
48
# File 'lib/underware.rb', line 46

def exec_underware(mws, *args, &block)
  fold_underware(mws, &block).call(*args)
end

.fold_underware(mws, &block) ⇒ Object Also known as: fold



36
37
38
39
40
41
42
# File 'lib/underware.rb', line 36

def fold_underware(mws, &block)
  return fold_underware([*mws, block]) if block_given?

  mws.reverse_each.inject(DoNothing) do |folded, mw|
    Folded.new(mw, folded)
  end
end