Sha256: f8fea58eeef597e303b2faac20b22f02ccbb6ebe9e73964033f1c894395b6766

Contents?: true

Size: 1.48 KB

Versions: 30

Compression:

Stored size: 1.48 KB

Contents

# frozen_string_literal: true
##
# Represents a possible Specification object returned from IndexSet.  Used to
# delay needed to download full Specification objects when only the +name+
# and +version+ are needed.

class Gem::Resolver::IndexSpecification < Gem::Resolver::Specification

  ##
  # An IndexSpecification is created from the index format described in `gem
  # help generate_index`.
  #
  # The +set+ contains other specifications for this (URL) +source+.
  #
  # The +name+, +version+ and +platform+ are the name, version and platform of
  # the gem.

  def initialize set, name, version, source, platform
    super()

    @set = set
    @name = name
    @version = version
    @source = source
    @platform = platform.to_s

    @spec = nil
  end

  ##
  # The dependencies of the gem for this specification

  def dependencies
    spec.dependencies
  end

  def inspect # :nodoc:
    '#<%s %s source %s>' % [self.class, full_name, @source]
  end

  def pretty_print q # :nodoc:
    q.group 2, '[Index specification', ']' do
      q.breakable
      q.text full_name

      unless Gem::Platform::RUBY == @platform then
        q.breakable
        q.text @platform.to_s
      end

      q.breakable
      q.text 'source '
      q.pp @source
    end
  end

  ##
  # Fetches a Gem::Specification for this IndexSpecification from the #source.

  def spec # :nodoc:
    @spec ||=
      begin
        tuple = Gem::NameTuple.new @name, @version, @platform

        @source.fetch_spec tuple
      end
  end

end

Version data entries

30 entries across 30 versions & 2 rubygems

Version Path
rubygems-update-2.7.11 lib/rubygems/resolver/index_specification.rb
rubygems-update-2.7.10 lib/rubygems/resolver/index_specification.rb
rubygems-update-2.7.9 lib/rubygems/resolver/index_specification.rb
rubygems-update-2.7.8 lib/rubygems/resolver/index_specification.rb
rubygems-update-2.7.7 lib/rubygems/resolver/index_specification.rb
rubygems-update-2.7.6 lib/rubygems/resolver/index_specification.rb
rubygems-update-2.7.5 lib/rubygems/resolver/index_specification.rb
rubygems-update-2.7.4 lib/rubygems/resolver/index_specification.rb
rubygems-update-2.7.4.pre1 lib/rubygems/resolver/index_specification.rb
rubygems-update-2.7.3 lib/rubygems/resolver/index_specification.rb
rubygems-update-2.7.2 lib/rubygems/resolver/index_specification.rb
rubygems-update-2.7.1 lib/rubygems/resolver/index_specification.rb
rubygems-update-2.7.0 lib/rubygems/resolver/index_specification.rb
rubygems-update-2.6.14 lib/rubygems/resolver/index_specification.rb
rubygems-update-2.6.13 lib/rubygems/resolver/index_specification.rb
rubygems-update-2.6.12 lib/rubygems/resolver/index_specification.rb
rubygems-update-2.6.11 lib/rubygems/resolver/index_specification.rb
rubygems-update-2.6.10 lib/rubygems/resolver/index_specification.rb
rubygems-update-2.6.9 lib/rubygems/resolver/index_specification.rb
ruby-compiler-0.1.1 vendor/ruby/lib/rubygems/resolver/index_specification.rb