1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/lib/rubygems/util/list.rb

45 lines
615 B
Ruby
Raw Normal View History

module Gem
List = Struct.new(:value, :tail)
class List
def each
n = self
while n
yield n.value
n = n.tail
end
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
end
def prepend(value)
List.new value, self
end
def self.prepend(list, value)
return List.new(value) unless list
List.new value, list
end
end
end