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
drbrain 8552f7aa68 * lib/rubygems: Update to RubyGems master 3de7e0f. Changes:
Only attempt to build extensions for newly-installed gems.  This
  prevents compilation attempts at gem activation time for gems that
  already have extensions built.

  Fix crash in the dependency resolver for dependencies that cannot be
  resolved.

* test/rubygems:  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43368 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-10-20 00:31:12 +00:00

48 lines
673 B
Ruby

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 pretty_print q # :nodoc:
q.pp to_a
end
def self.prepend(list, value)
return List.new(value) unless list
List.new value, list
end
end
end