Sha256: 77db74949399d6e57375a8603cc855f880ac7472c3e80653a7d8436cb562a27b

Contents?: true

Size: 615 Bytes

Versions: 14

Compression:

Stored size: 615 Bytes

Contents

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

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
rubygems-update-2.1.11 lib/rubygems/util/list.rb
rubygems-update-2.1.10 lib/rubygems/util/list.rb
rubygems-update-2.1.9 lib/rubygems/util/list.rb
rubygems-update-2.1.8 lib/rubygems/util/list.rb
rubygems-update-2.1.7 lib/rubygems/util/list.rb
rubygems-update-2.1.6 lib/rubygems/util/list.rb
rubygems-update-2.1.5 lib/rubygems/util/list.rb
rubygems-update-2.1.4 lib/rubygems/util/list.rb
rubygems-update-2.1.3 lib/rubygems/util/list.rb
rubygems-update-2.1.2 lib/rubygems/util/list.rb
rubygems-update-2.1.1 lib/rubygems/util/list.rb
rubygems-update-2.1.0 lib/rubygems/util/list.rb
rubygems-update-2.1.0.rc.2 lib/rubygems/util/list.rb
rubygems-update-2.1.0.rc.1 lib/rubygems/util/list.rb