class Bundler::SSLCerts::CertificateManager
def self.update_from!(rubygems_path)
def self.update_from!(rubygems_path) new(rubygems_path).update! end
def certificates_in(path)
def certificates_in(path) Dir[File.join(path, "*.pem")].sort end
def initialize(rubygems_path)
def initialize(rubygems_path) rubygems_certs = File.join(rubygems_path, 'lib/rubygems/ssl_certs') @rubygems_certs = certificates_in(rubygems_certs) @bundler_cert_path = File.expand_path("..", __FILE__) @bundler_certs = certificates_in(bundler_cert_path) end
def up_to_date?
def up_to_date? bundler_certs.zip(rubygems_certs).all? do |bc, rc| File.basename(bc) == File.basename(rc) && FileUtils.compare_file(bc, rc) end end
def update!
def update! return if up_to_date? FileUtils.rm bundler_certs FileUtils.cp rubygems_certs, bundler_cert_path end