In Files

  • bundler/ssl_certs/certificate_manager.rb

Class/Module Index [+]

Quicksearch

Bundler::SSLCerts::CertificateManager

Attributes

bundler_cert_path[R]
bundler_certs[R]
rubygems_certs[R]

Public Class Methods

new(rubygems_path = nil) click to toggle source
 
               # File bundler/ssl_certs/certificate_manager.rb, line 16
def initialize(rubygems_path = nil)
  if rubygems_path
    rubygems_cert_path = File.join(rubygems_path, "lib/rubygems/ssl_certs")
    @rubygems_certs = certificates_in(rubygems_cert_path)
  end

  @bundler_cert_path = File.expand_path("..", __FILE__)
  @bundler_certs = certificates_in(bundler_cert_path)
end
            
update_from!(rubygems_path) click to toggle source
 
               # File bundler/ssl_certs/certificate_manager.rb, line 12
def self.update_from!(rubygems_path)
  new(rubygems_path).update!
end
            

Public Instance Methods

connect_to(host) click to toggle source
 
               # File bundler/ssl_certs/certificate_manager.rb, line 41
def connect_to(host)
  http = Net::HTTP.new(host, 443)
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_PEER
  http.cert_store = store
  http.head("/")
end
            
up_to_date?() click to toggle source
 
               # File bundler/ssl_certs/certificate_manager.rb, line 26
def up_to_date?
  rubygems_certs.all? do |rc|
    bundler_certs.find do |bc|
      File.basename(bc) == File.basename(rc) && FileUtils.compare_file(bc, rc)
    end
  end
end
            
update!() click to toggle source
 
               # File bundler/ssl_certs/certificate_manager.rb, line 34
def update!
  return if up_to_date?

  FileUtils.rm bundler_certs
  FileUtils.cp rubygems_certs, bundler_cert_path
end