summaryrefslogtreecommitdiff
path: root/lib/rubygems/util/list.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/util/list.rb')
-rw-r--r--lib/rubygems/util/list.rb30
1 files changed, 9 insertions, 21 deletions
diff --git a/lib/rubygems/util/list.rb b/lib/rubygems/util/list.rb
index 9bc11fe334..6fa767646c 100644
--- a/lib/rubygems/util/list.rb
+++ b/lib/rubygems/util/list.rb
@@ -1,7 +1,13 @@
module Gem
- List = Struct.new(:value, :tail)
-
class List
+ include Enumerable
+ attr_accessor :value, :tail
+
+ def initialize(value = nil, tail = nil)
+ @value = value
+ @tail = tail
+ end
+
def each
n = self
while n
@@ -11,25 +17,7 @@ module Gem
end
def to_a
- ary = []
- n = self
- while n
- ary.unshift n.value
- n = n.tail
- end
-
- ary
- end
-
- def find
- n = self
- while n
- v = n.value
- return v if yield(v)
- n = n.tail
- end
-
- nil
+ super.reverse
end
def prepend(value)