# 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} => "
    end