Class Rake::InvocationChain |
|
InvocationChain tracks the chain of task invocations to detect circular dependencies.
Methods |
Classes and Modules |
Public Class methods |
append(value, chain) |
# File lib/rake/invocation_chain.rb, line 27 27: def self.append(value, chain) 28: chain.append(value) 29: end
new(value, tail) |
# File lib/rake/invocation_chain.rb, line 7 7: def initialize(value, tail) 8: @value = value 9: @tail = tail 10: end
Public Instance methods |
append(value) |
# File lib/rake/invocation_chain.rb, line 16 16: def append(value) 17: if member?(value) 18: fail RuntimeError, "Circular dependency detected: #{to_s} => #{value}" 19: end 20: self.class.new(value, self) 21: end
member?(obj) |
# File lib/rake/invocation_chain.rb, line 12 12: def member?(obj) 13: @value == obj || @tail.member?(obj) 14: end
to_s() |
# File lib/rake/invocation_chain.rb, line 23 23: def to_s 24: "#{prefix}#{@value}" 25: end