InvocationChain tracks the chain of task invocations to detect circular dependencies.

Methods
Classes and Modules
Class Rake::InvocationChain::EmptyInvocationChain
Constants
EMPTY = EmptyInvocationChain.new
Public Class methods
append(value, chain)
     # File lib/rake.rb, line 430
430:     def self.append(value, chain)
431:       chain.append(value)
432:     end
new(value, tail)
     # File lib/rake.rb, line 410
410:     def initialize(value, tail)
411:       @value = value
412:       @tail = tail
413:     end
Public Instance methods
append(value)
     # File lib/rake.rb, line 419
419:     def append(value)
420:       if member?(value)
421:         fail RuntimeError, "Circular dependency detected: #{to_s} => #{value}"
422:       end
423:       self.class.new(value, self)
424:     end
member?(obj)
     # File lib/rake.rb, line 415
415:     def member?(obj)
416:       @value == obj || @tail.member?(obj)
417:     end
to_s()
     # File lib/rake.rb, line 426
426:     def to_s
427:       "#{prefix}#{@value}"
428:     end