Sha256: c7112f4d866e96add8773553ed77103cbb0acee1ec9a2e43b34a22f7bdcc33de

Contents?: true

Size: 684 Bytes

Versions: 15

Compression:

Stored size: 684 Bytes

Contents

require 'netrc'

module Paratrooper
  class LocalApiKeyExtractor
    attr_reader :file_path, :netrc_klass

    def self.get_credentials
      new.read_credentials
    end

    def initialize(options = {})
      @netrc_klass = options[:netrc_klass] || Netrc
      @file_path   = options[:file_path] || netrc_klass.default_path
    end

    def read_credentials
      ENV['HEROKU_API_KEY'] || read_credentials_for('api.heroku.com')
    end

    private
    def netrc
      @netrc ||= begin
        File.exists?(file_path) && Netrc.read(file_path)
      rescue => error
        raise error
      end
    end

    def read_credentials_for(domain)
      netrc[domain][1]
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
paratrooper-2.0.0.beta1 lib/paratrooper/local_api_key_extractor.rb
paratrooper-1.4.2 lib/paratrooper/local_api_key_extractor.rb
paratrooper-1.4.1 lib/paratrooper/local_api_key_extractor.rb
paratrooper-1.4.0 lib/paratrooper/local_api_key_extractor.rb
paratrooper-1.3.2 lib/paratrooper/local_api_key_extractor.rb
paratrooper-1.3.1 lib/paratrooper/local_api_key_extractor.rb
paratrooper-1.2.2 lib/paratrooper/local_api_key_extractor.rb
paratrooper-1.2.1 lib/paratrooper/local_api_key_extractor.rb
paratrooper-1.2.0 lib/paratrooper/local_api_key_extractor.rb
paratrooper-1.1.3 lib/paratrooper/local_api_key_extractor.rb
paratrooper-1.1.2 lib/paratrooper/local_api_key_extractor.rb
paratrooper-1.1.1 lib/paratrooper/local_api_key_extractor.rb
paratrooper-1.1.0 lib/paratrooper/local_api_key_extractor.rb
paratrooper-1.0.0 lib/paratrooper/local_api_key_extractor.rb
paratrooper-0.4.0 lib/paratrooper/local_api_key_extractor.rb