Sha256: f6601396ed9e86f863eaa5e8116c0ca38d49226218f37e6a06d3305d45e8d0c1

Contents?: true

Size: 1001 Bytes

Versions: 23

Compression:

Stored size: 1001 Bytes

Contents

require 'fileutils'

module Bundler
  module SSLCerts
    class CertificateManager
      attr_reader :bundler_cert_path, :bundler_certs, :rubygems_certs

      def self.update_from!(rubygems_path)
        new(rubygems_path).update!
      end

      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?
        bundler_certs.zip(rubygems_certs).all? do |bc, rc|
          File.basename(bc) == File.basename(rc) && FileUtils.compare_file(bc, rc)
        end
      end

      def update!
        return if up_to_date?

        FileUtils.rm bundler_certs
        FileUtils.cp rubygems_certs, bundler_cert_path
      end

    private

      def certificates_in(path)
        Dir[File.join(path, "*.pem")].sort
      end

    end
  end
end

Version data entries

23 entries across 23 versions & 2 rubygems

Version Path
bundler-1.7.4 lib/bundler/ssl_certs/certificate_manager.rb
bundler-1.6.7 lib/bundler/ssl_certs/certificate_manager.rb
bundler-1.7.3 lib/bundler/ssl_certs/certificate_manager.rb
bundler-1.6.6 lib/bundler/ssl_certs/certificate_manager.rb
bundler-1.7.2 lib/bundler/ssl_certs/certificate_manager.rb
bundler-1.7.1 lib/bundler/ssl_certs/certificate_manager.rb
bundler-1.7.1.pre.3 lib/bundler/ssl_certs/certificate_manager.rb
bundler-1.7.1.pre.2 lib/bundler/ssl_certs/certificate_manager.rb
bundler-1.7.1.pre lib/bundler/ssl_certs/certificate_manager.rb
bundler-1.7.0 lib/bundler/ssl_certs/certificate_manager.rb
bundler-1.6.5 lib/bundler/ssl_certs/certificate_manager.rb
bundler-1.6.4 lib/bundler/ssl_certs/certificate_manager.rb
bundler-prehistoric-1.6.2.2 lib/bundler/ssl_certs/certificate_manager.rb
bundler-1.6.3 lib/bundler/ssl_certs/certificate_manager.rb
bundler-prehistoric-1.6.2.1 lib/bundler/ssl_certs/certificate_manager.rb
bundler-prehistoric-1.6.2 lib/bundler/ssl_certs/certificate_manager.rb
bundler-1.6.2 lib/bundler/ssl_certs/certificate_manager.rb
bundler-1.6.1 lib/bundler/ssl_certs/certificate_manager.rb
bundler-1.6.0 lib/bundler/ssl_certs/certificate_manager.rb
bundler-1.6.0.rc2 lib/bundler/ssl_certs/certificate_manager.rb