Sha256: 7fd4818606b7e69ea7514ac0b161f7f17c9857462df8720b3db1e4c3b19e9da9

Contents?: true

Size: 586 Bytes

Versions: 5

Compression:

Stored size: 586 Bytes

Contents

# frozen_string_literal: true

module Gem
  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
        yield n.value
        n = n.tail
      end
    end

    def to_a
      super.reverse
    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

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rubygems-update-3.4.22 lib/rubygems/util/list.rb
rubygems-update-3.4.21 lib/rubygems/util/list.rb
rubygems-update-3.4.20 lib/rubygems/util/list.rb
rubygems-update-3.4.19 lib/rubygems/util/list.rb
rubygems-update-3.4.18 lib/rubygems/util/list.rb