class Bundler::Settings::Mirror

A mirror

Contains both the uri that should be used as a mirror and the

fallback timeout which will be used for probing if the mirror
replies on time or not.

Constants

DEFAULT_FALLBACK_TIMEOUT

Attributes

fallback_timeout[R]
uri[R]

Public Class Methods

new(uri = nil, fallback_timeout = 0) click to toggle source
# File bundler/mirror.rb, line 67
def initialize(uri = nil, fallback_timeout = 0)
  self.uri = uri
  self.fallback_timeout = fallback_timeout
  @valid = nil
end

Public Instance Methods

==(other) click to toggle source
# File bundler/mirror.rb, line 94
def ==(other)
  !other.nil? && uri == other.uri && fallback_timeout == other.fallback_timeout
end
fallback_timeout=(timeout) click to toggle source
# File bundler/mirror.rb, line 82
def fallback_timeout=(timeout)
  case timeout
  when true, "true"
    @fallback_timeout = DEFAULT_FALLBACK_TIMEOUT
  when false, "false"
    @fallback_timeout = 0
  else
    @fallback_timeout = timeout.to_i
  end
  @valid = nil
end
uri=(uri) click to toggle source
# File bundler/mirror.rb, line 73
def uri=(uri)
  @uri = if uri.nil?
    nil
  else
    Gem::URI(uri.to_s)
  end
  @valid = nil
end
valid?() click to toggle source
# File bundler/mirror.rb, line 98
def valid?
  return false if @uri.nil?
  return @valid unless @valid.nil?
  false
end
validate!(probe = nil) click to toggle source
# File bundler/mirror.rb, line 104
def validate!(probe = nil)
  @valid = false if uri.nil?
  if @valid.nil?
    @valid = fallback_timeout == 0 || (probe || TCPSocketProbe.new).replies?(self)
  end
  self
end