Sha256: 20ba7bf482924721010483c2a173b45bda260614a7ca4600d22235bbc114bc06

Contents?: true

Size: 805 Bytes

Versions: 31

Compression:

Stored size: 805 Bytes

Contents

# frozen_string_literal: true

module SdrClient
  # The stored credentials
  class Credentials
    class NoCredentialsError < StandardError; end

    # @param [String] a json string that contains a field 'token'
    def self.write(body)
      json = JSON.parse(body)
      Dir.mkdir(credentials_path, 0o700) unless Dir.exist?(credentials_path)
      File.open(credentials_file, 'w', 0o600) do |file|
        file.write(json.fetch('token'))
      end
    end

    def self.read
      raise NoCredentialsError unless ::File.exist?(credentials_file)

      IO.readlines(credentials_file, chomp: true).first
    end

    def self.credentials_path
      @credentials_path ||= File.join(Dir.home, '.sdr')
    end

    def self.credentials_file
      File.join(credentials_path, 'credentials')
    end
  end
end

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
sdr-client-0.28.0 lib/sdr_client/credentials.rb
sdr-client-0.27.0 lib/sdr_client/credentials.rb
sdr-client-0.26.1 lib/sdr_client/credentials.rb
sdr-client-0.26.0 lib/sdr_client/credentials.rb
sdr-client-0.25.0 lib/sdr_client/credentials.rb
sdr-client-0.24.0 lib/sdr_client/credentials.rb
sdr-client-0.23.1 lib/sdr_client/credentials.rb
sdr-client-0.23.0 lib/sdr_client/credentials.rb
sdr-client-0.22.0 lib/sdr_client/credentials.rb
sdr-client-0.21.0 lib/sdr_client/credentials.rb
sdr-client-0.20.0 lib/sdr_client/credentials.rb
sdr-client-0.19.0 lib/sdr_client/credentials.rb
sdr-client-0.18.0 lib/sdr_client/credentials.rb
sdr-client-0.17.2 lib/sdr_client/credentials.rb
sdr-client-0.17.1 lib/sdr_client/credentials.rb
sdr-client-0.17.0 lib/sdr_client/credentials.rb
sdr-client-0.16.1 lib/sdr_client/credentials.rb
sdr-client-0.16.0 lib/sdr_client/credentials.rb
sdr-client-0.15.2 lib/sdr_client/credentials.rb
sdr-client-0.15.1 lib/sdr_client/credentials.rb