class SC::InvocationChain
InvocationChain
tracks the chain of task invocations to detect circular dependencies. Borrowed from Rake 0.8.3
Constants
- EMPTY
Public Class Methods
append(value, chain)
click to toggle source
# File lib/sproutcore/buildfile/invocation_chain.rb, line 37 def self.append(value, chain) chain.append(value) end
new(value, tail)
click to toggle source
# File lib/sproutcore/buildfile/invocation_chain.rb, line 13 def initialize(value, tail) @value = value @tail = tail end
Public Instance Methods
already_invoked?(task)
click to toggle source
# File lib/sproutcore/buildfile/invocation_chain.rb, line 22 def already_invoked?(task) (task == @value) || @tail.already_invoked?(task) end
append(value)
click to toggle source
# File lib/sproutcore/buildfile/invocation_chain.rb, line 26 def append(value) if member?(value) raise "Circular dependency detected: #{to_s} => #{value}" end self.class.new(value, self) end
member?(obj)
click to toggle source
# File lib/sproutcore/buildfile/invocation_chain.rb, line 18 def member?(obj) @value == obj || @tail.member?(obj) end
to_s()
click to toggle source
# File lib/sproutcore/buildfile/invocation_chain.rb, line 33 def to_s "#{prefix}#{@value}" end
Private Instance Methods
prefix()
click to toggle source
# File lib/sproutcore/buildfile/invocation_chain.rb, line 43 def prefix "#{@tail.to_s} => " end