Class: Legatus::Chain

Inherits:
Object
  • Object
show all
Defined in:
lib/legatus/chain.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(invocations) ⇒ Chain

Returns a new instance of Chain.



5
6
7
# File 'lib/legatus/chain.rb', line 5

def initialize(invocations)
  @invocations = invocations
end

Instance Attribute Details

#invocationsObject (readonly)

Returns the value of attribute invocations.



3
4
5
# File 'lib/legatus/chain.rb', line 3

def invocations
  @invocations
end

Instance Method Details

#apply(source) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 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