123456789_123456789_123456789_123456789_123456789_

Class: Gem::Resolver::Set

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Subclasses:
Inherits: Object
Defined in: lib/rubygems/resolver/set.rb

Overview

::Gem::Resolver sets are used to look up specifications (and their dependencies) used in resolution. This set is abstract.

Class Method Summary

Instance Attribute Summary

  • #errors rw

    Errors encountered when resolving gems.

  • #prerelease rw

    When true, allows matching of requests to prerelease gems.

  • #remote rw

    Set to true to disable network access for this set.

  • #remote? ⇒ Boolean rw Internal use only

    When true, this set is allowed to access the network when looking up specifications or dependencies.

Instance Method Summary

Constructor Details

.newSet

This method is for internal use only.
[ GitHub ]

  
# File 'lib/rubygems/resolver/set.rb', line 23

def initialize # :nodoc:
  require 'uri'
  @prerelease = false
  @remote     = true
  @errors     = []
end

Instance Attribute Details

#errors (rw)

Errors encountered when resolving gems

[ GitHub ]

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

attr_accessor :errors

#prerelease (rw)

When true, allows matching of requests to prerelease gems.

[ GitHub ]

  
# File 'lib/rubygems/resolver/set.rb', line 21

attr_accessor :prerelease

#remote (rw)

Set to true to disable network access for this set

[ GitHub ]

  
# File 'lib/rubygems/resolver/set.rb', line 11

attr_accessor :remote

#remote?Boolean (rw)

This method is for internal use only.

When true, this set is allowed to access the network when looking up specifications or dependencies.

[ GitHub ]

  
# File 'lib/rubygems/resolver/set.rb', line 53

def remote? # :nodoc:
  @remote
end

Instance Method Details

#find_all(req)

The find_all method must be implemented. It returns all ::Gem::Resolver Specification objects matching the given DependencyRequest req.

Raises:

  • (NotImplementedError)
[ GitHub ]

  
# File 'lib/rubygems/resolver/set.rb', line 34

def find_all req
  raise NotImplementedError
end

#prefetch(reqs)

The #prefetch method may be overridden, but this is not necessary. This default implementation does nothing, which is suitable for sets where looking up a specification is cheap (such as installed gems).

When overridden, the #prefetch method should look up specifications matching reqs.

[ GitHub ]

  
# File 'lib/rubygems/resolver/set.rb', line 46

def prefetch reqs
end