class Rake::InvocationChain
InvocationChain tracks the chain of task invocations to detect circular dependencies.
Constants
- EMPTY
Public Class Methods
append(invocation, chain)
click to toggle source
Class level append.
# File lib/rake/invocation_chain.rb, line 28 def self.append(invocation, chain) chain.append(invocation) end
Public Instance Methods
append(invocation)
click to toggle source
Append an invocation to the chain of invocations. It is an error if the invocation already listed.
# File lib/rake/invocation_chain.rb, line 15 def append(invocation) if member?(invocation) fail RuntimeError, "Circular dependency detected: #{to_s} => #{invocation}" end conj(invocation) end
member?(invocation)
click to toggle source
Is the invocation already in the chain?
# File lib/rake/invocation_chain.rb, line 9 def member?(invocation) head == invocation || tail.member?(invocation) end
to_s()
click to toggle source
Convert to string, ie: TOP => invocation => invocation
# File lib/rake/invocation_chain.rb, line 23 def to_s "#{prefix}#{head}" end
Private Instance Methods
prefix()
click to toggle source
# File lib/rake/invocation_chain.rb, line 34 def prefix "#{tail.to_s} => " end