123456789_123456789_123456789_123456789_123456789_

Class: Gem::Resolver::APISpecification

Relationships & Source Files
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Instance Chain:
Inherits: Gem::Resolver::Specification
Defined in: lib/rubygems/resolver/api_specification.rb

Overview

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.

Class Method Summary

Specification - Inherited

.new

Sets default instance variables for the specification.

Instance Attribute Summary

Specification - Inherited

#dependencies

The dependencies of the gem for this specification.

#installable_platform?

Returns true if this specification is installable on this platform.

#name

The name of the gem for this specification.

#platform

The platform this gem works on.

#set

The set this specification came from.

#source

The source for this specification.

#spec
#version

The version of the gem for this specification.

Instance Method Summary

Specification - Inherited

#full_name

The name and version of the specification.

#install

Installs this specification using the ::Gem::Installer options.

Constructor Details

.new(set, api_data) ⇒ APISpecification

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.

[ GitHub ]

  
# File 'lib/rubygems/resolver/api_specification.rb', line 16

def initialize(set, api_data)
  super()

  @set = set
  @name = api_data[:name]
  @version = Gem::Version.new api_data[:number]
  @platform = Gem::Platform.new api_data[:platform]
  @dependencies = api_data[:dependencies].map do |name, ver|
    Gem::Dependency.new name, ver.split(/\s*,\s*/)
  end
end