diff options
Diffstat (limited to 'ruby_1_9_3/lib/rake/invocation_chain.rb')
-rw-r--r-- | ruby_1_9_3/lib/rake/invocation_chain.rb | 51 |
1 files changed, 0 insertions, 51 deletions
diff --git a/ruby_1_9_3/lib/rake/invocation_chain.rb b/ruby_1_9_3/lib/rake/invocation_chain.rb deleted file mode 100644 index 8a01ab4c29..0000000000 --- a/ruby_1_9_3/lib/rake/invocation_chain.rb +++ /dev/null @@ -1,51 +0,0 @@ -module Rake - - #################################################################### - # InvocationChain tracks the chain of task invocations to detect - # circular dependencies. - class InvocationChain - def initialize(value, tail) - @value = value - @tail = tail - end - - def member?(obj) - @value == obj || @tail.member?(obj) - end - - def append(value) - if member?(value) - fail RuntimeError, "Circular dependency detected: #{to_s} => #{value}" - end - self.class.new(value, self) - end - - def to_s - "#{prefix}#{@value}" - end - - def self.append(value, chain) - chain.append(value) - end - - private - - def prefix - "#{@tail.to_s} => " - end - - class EmptyInvocationChain - def member?(obj) - false - end - def append(value) - InvocationChain.new(value, self) - end - def to_s - "TOP" - end - end - - EMPTY = EmptyInvocationChain.new - end -end |