From fcbf63e62c627deae76c1b8cb8c0876c536ed811 Mon Sep 17 00:00:00 2001 From: Jari Vetoniemi Date: Mon, 16 Mar 2020 18:49:26 +0900 Subject: Fresh start --- .../lib/rubygems/resolver/index_specification.rb | 69 ++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 jni/ruby/lib/rubygems/resolver/index_specification.rb (limited to 'jni/ruby/lib/rubygems/resolver/index_specification.rb') diff --git a/jni/ruby/lib/rubygems/resolver/index_specification.rb b/jni/ruby/lib/rubygems/resolver/index_specification.rb new file mode 100644 index 0000000..56fecb5 --- /dev/null +++ b/jni/ruby/lib/rubygems/resolver/index_specification.rb @@ -0,0 +1,69 @@ +## +# 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 + -- cgit v1.2.3