class Proc

Public Class Methods

recursive(&block) click to toggle source
# File lib/matilda-function.rb, line 2
def self.recursive(&block)
  Proc.new do |args|
    step = RecursiveStep.new
    returned = block.call(step, *args)

    while returned.kind_of?(RecursiveStep)
      returned = block.call(step, *returned.args)
    end

    returned
  end
end

Public Instance Methods

+(func) click to toggle source
# File lib/matilda-function.rb, line 21
def +(func)
  Proc.new do |*args|
    self.call(*args)
    func.call(*args)
  end
end
<<(func) click to toggle source
# File lib/matilda-function.rb, line 15
def <<(func)
  Proc.new do |*args|
    func.call(self.call(*args))
  end
end