class Legatus::Chain

Attributes

invocations[R]

Public Class Methods

new(invocations) click to toggle source
# File lib/legatus/chain.rb, line 5
def initialize(invocations)
  @invocations = invocations
end

Public Instance Methods

apply(source) click to toggle source
# File lib/legatus/chain.rb, line 9
def apply(source)
  result = source
  @invocations.each do |name, params|
    break if result.nil?
    
    if params.is_a?(Proc)
      result = result.send(name, &params)
    else
      result = result.send(name, *params)
    end
  end

  return result
end