class Gem::Resolver::APISpecification
Represents a specification retrieved via the rubygems.org API.
This is used to avoid loading the full Specification object when all we need is the name, version, and dependencies.
Public Class Methods
                              new(set, api_data)
                              click to toggle source
                            
                            
                                  Calls superclass method
                                  
                              Gem::Resolver::Specification::new
                              # File rubygems/resolver/api_specification.rb, line 13 def self.new(set, api_data) cache_key = [set, api_data] cache = @@cache[cache_key] return cache if cache @@cache[cache_key] = super end
                              new(set, api_data)
                              click to toggle source
                            
                            Creates an APISpecification for the given set from the rubygems.org api_data.
See guides.rubygems.org/rubygems-org-api/#misc_methods for the format of the api_data.
                                  Calls superclass method
                                  
                              Gem::Resolver::Specification::new
                              # File rubygems/resolver/api_specification.rb, line 27 def initialize(set, api_data) super() @set = set @name = api_data[:name] @version = Gem::Version.new(api_data[:number]).freeze @platform = Gem::Platform.new(api_data[:platform]).freeze @original_platform = api_data[:platform].freeze @dependencies = api_data[:dependencies].map do |name, ver| Gem::Dependency.new(name, ver.split(/\s*,\s*/)).freeze end.freeze @required_ruby_version = Gem::Requirement.new(api_data.dig(:requirements, :ruby)).freeze @required_rubygems_version = Gem::Requirement.new(api_data.dig(:requirements, :rubygems)).freeze end
Public Instance Methods
                              hash()
                              click to toggle source
                            
                            # File rubygems/resolver/api_specification.rb, line 50 def hash @set.hash ^ @name.hash ^ @version.hash ^ @platform.hash end