Class: Bundler::SSLCerts::CertificateManager
Relationships & Source Files | |
Inherits: | Object |
Defined in: | lib/bundler/ssl_certs/certificate_manager.rb |
Class Method Summary
Instance Attribute Summary
- #bundler_cert_path readonly
- #bundler_certs readonly
- #rubygems_certs readonly
- #up_to_date? ⇒ Boolean readonly
Instance Method Summary
- #connect_to(host)
- #update!
- #certificates_in(path) private
- #store private
Constructor Details
.new(rubygems_path = nil) ⇒ CertificateManager
# File 'lib/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. ("..", __FILE__) @bundler_certs = certificates_in(bundler_cert_path) end
Class Method Details
.update_from!(rubygems_path)
[ GitHub ]Instance Attribute Details
#bundler_cert_path (readonly)
[ GitHub ]# File 'lib/bundler/ssl_certs/certificate_manager.rb', line 10
attr_reader :bundler_cert_path, :bundler_certs, :rubygems_certs
#bundler_certs (readonly)
[ GitHub ]# File 'lib/bundler/ssl_certs/certificate_manager.rb', line 10
attr_reader :bundler_cert_path, :bundler_certs, :rubygems_certs
#rubygems_certs (readonly)
[ GitHub ]# File 'lib/bundler/ssl_certs/certificate_manager.rb', line 10
attr_reader :bundler_cert_path, :bundler_certs, :rubygems_certs
#up_to_date? ⇒ Boolean
(readonly)
[ GitHub ]
# File 'lib/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
Instance Method Details
#certificates_in(path) (private)
[ GitHub ]# File 'lib/bundler/ssl_certs/certificate_manager.rb', line 51
def certificates_in(path) Dir[File.join(path, "**/*.pem")].sort end
#connect_to(host)
[ GitHub ]#store (private)
[ GitHub ]# File 'lib/bundler/ssl_certs/certificate_manager.rb', line 55
def store @store ||= begin store = OpenSSL::X509::Store.new bundler_certs.each do |cert| store.add_file cert end store end end
#update!
[ GitHub ]# File 'lib/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