summaryrefslogtreecommitdiff
path: root/ruby_1_9_3/lib/rake/invocation_chain.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ruby_1_9_3/lib/rake/invocation_chain.rb')
-rw-r--r--ruby_1_9_3/lib/rake/invocation_chain.rb51
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