2016-02-01 07:43:26 -05:00
|
|
|
# frozen_string_literal: true
|
2013-11-10 12:51:40 -05:00
|
|
|
##
|
2013-11-18 19:34:13 -05:00
|
|
|
# Resolver sets are used to look up specifications (and their
|
2013-11-10 12:51:40 -05:00
|
|
|
# dependencies) used in resolution. This set is abstract.
|
|
|
|
|
2013-11-18 19:34:13 -05:00
|
|
|
class Gem::Resolver::Set
|
2014-02-03 19:48:31 -05:00
|
|
|
##
|
|
|
|
# Set to true to disable network access for this set
|
|
|
|
|
|
|
|
attr_accessor :remote
|
|
|
|
|
2014-09-13 23:30:02 -04:00
|
|
|
##
|
|
|
|
# Errors encountered when resolving gems
|
|
|
|
|
|
|
|
attr_accessor :errors
|
|
|
|
|
|
|
|
##
|
|
|
|
# When true, allows matching of requests to prerelease gems.
|
|
|
|
|
|
|
|
attr_accessor :prerelease
|
|
|
|
|
2014-02-03 19:48:31 -05:00
|
|
|
def initialize # :nodoc:
|
2017-03-16 21:29:22 -04:00
|
|
|
require 'uri'
|
2014-09-13 23:30:02 -04:00
|
|
|
@prerelease = false
|
|
|
|
@remote = true
|
|
|
|
@errors = []
|
2014-02-03 19:48:31 -05:00
|
|
|
end
|
|
|
|
|
2013-11-10 12:51:40 -05:00
|
|
|
##
|
2013-11-18 19:34:13 -05:00
|
|
|
# The find_all method must be implemented. It returns all Resolver
|
|
|
|
# Specification objects matching the given DependencyRequest +req+.
|
2013-11-10 12:51:40 -05:00
|
|
|
|
2018-11-21 05:20:47 -05:00
|
|
|
def find_all(req)
|
2013-11-10 12:51:40 -05:00
|
|
|
raise NotImplementedError
|
|
|
|
end
|
|
|
|
|
|
|
|
##
|
|
|
|
# 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+.
|
|
|
|
|
2018-11-21 05:20:47 -05:00
|
|
|
def prefetch(reqs)
|
2013-11-10 12:51:40 -05:00
|
|
|
end
|
|
|
|
|
2014-02-03 19:48:31 -05:00
|
|
|
##
|
|
|
|
# When true, this set is allowed to access the network when looking up
|
|
|
|
# specifications or dependencies.
|
|
|
|
|
|
|
|
def remote? # :nodoc:
|
|
|
|
@remote
|
|
|
|
end
|
2013-11-10 12:51:40 -05:00
|
|
|
end
|