123456789_123456789_123456789_123456789_123456789_

Class: Bundler::Settings::Mirror

Relationships & Source Files
Inherits: Object
Defined in: lib/bundler/mirror.rb

Overview

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.

Constant Summary

Class Method Summary

Instance Attribute Summary

Instance Method Summary

Constructor Details

.new(uri = nil, fallback_timeout = 0) ⇒ Mirror

[ GitHub ]

  
# File 'lib/bundler/mirror.rb', line 67
def initialize(uri = nil, fallback_timeout = 0)
  self.uri = uri
  self.fallback_timeout = fallback_timeout
  @valid = nil
end

Instance Attribute Details

#fallback_timeout (rw)

[ GitHub ]

  
# File 'lib/bundler/mirror.rb', line 65
attr_reader :uri, :fallback_timeout

#fallback_timeout=(timeout) (rw)

[ GitHub ]

  
# File 'lib/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 (rw)

[ GitHub ]

  
# File 'lib/bundler/mirror.rb', line 65
attr_reader :uri, :fallback_timeout

#uri=(uri) (rw)

[ GitHub ]

  
# File 'lib/bundler/mirror.rb', line 73
def uri=(uri)
  @uri = if uri.nil?
    nil
  else
    Gem::URI(uri.to_s)
  end
  @valid = nil
end

#valid?Boolean (readonly)

[ GitHub ]

  
# File 'lib/bundler/mirror.rb', line 98
def valid?
  return false if @uri.nil?
  return @valid unless @valid.nil?
  false
end

Instance Method Details

#==(other)

[ GitHub ]

  
# File 'lib/bundler/mirror.rb', line 94
def ==(other)
  !other.nil? && uri == other.uri && fallback_timeout == other.fallback_timeout
end

#validate!(probe = nil)

[ GitHub ]

  
# File 'lib/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