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.
Methods
Class Public methods
new(set, api_data) Link
new(set, api_data) Link
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
.
# File ruby/lib/rubygems/resolver/api_specification.rb, line 28 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