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/resolver/index_specification.rb
hsbt 5335ce0e06 Merge master branch from rubygems/rubygems upstream.
* Enable Style/MethodDefParentheses in Rubocop
    https://github.com/rubygems/rubygems/pull/2478
  * Enable Style/MultilineIfThen in Rubocop
    https://github.com/rubygems/rubygems/pull/2479
  * Fix required_ruby_version with prereleases and improve error message
    https://github.com/rubygems/rubygems/pull/2344
  * Fix bundler rubygems binstub not properly looking for bundler
    https://github.com/rubygems/rubygems/pull/2426

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-21 10:20:47 +00:00

69 lines
1.5 KiB
Ruby

# 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
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