In Files

  • rake-13.0.3/lib/rake/invocation_chain.rb
  • rake-13.0.3/lib/rake/task.rb

Parent

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 rake-13.0.3/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 rake-13.0.3/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 rake-13.0.3/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 rake-13.0.3/lib/rake/invocation_chain.rb, line 23
def to_s
  "#{prefix}#{head}"
end