Sha256: f3c27b99326b17b101f33d23d0b8f7155ea0ab9da823a230dd7578cdaac6d6ef

Contents?: true

Size: 1.16 KB

Versions: 16

Compression:

Stored size: 1.16 KB

Contents

# encoding: utf-8
require 'base64'
module PassaporteWeb

  class Configuration
    attr_accessor :url, :user_agent, :application_token, :application_secret, :user_token

    def initialize
      @url = 'https://app.passaporteweb.com.br'
      @user_agent = "PassaporteWeb Ruby Client v#{PassaporteWeb::VERSION}"
      @application_token = nil
      @application_secret = nil
      @user_token = nil
    end

    def application_credentials
      check_tokens! :application_token, :application_secret
      base64_credential('application', @application_token, @application_secret)
    end

    def user_credentials
      check_tokens! :user_token
      base64_credential('user', @user_token)
    end

    private

    def check_tokens!(*tokens)
      tokens.each do |token|
        value = instance_variable_get("@#{token}".to_sym)
        raise ArgumentError, "#{token} not set" if value.nil? || value.to_s.strip == ''
      end
    end

    def base64_credential(type, user, password=nil)
      return "Basic #{::Base64.strict_encode64("#{user}:#{password}")}" if type.eql? 'application'
      return "Basic #{::Base64.strict_encode64(":#{user}")}" if type.eql? 'user'
    end
  end

end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
passaporteweb-client-0.5.0 lib/passaporte_web/configuration.rb
passaporteweb-client-0.4.0 lib/passaporte_web/configuration.rb
passaporteweb-client-0.0.20 lib/passaporte_web/configuration.rb
passaporteweb-client-0.3.0 lib/passaporte_web/configuration.rb
passaporteweb-client-0.2.0 lib/passaporte_web/configuration.rb
passaporteweb-client-0.1.0 lib/passaporte_web/configuration.rb
passaporteweb-client-0.0.19 lib/passaporte_web/configuration.rb
passaporteweb-client-0.0.18 lib/passaporte_web/configuration.rb
passaporteweb-client-0.0.17 lib/passaporte_web/configuration.rb
passaporteweb-client-0.0.16 lib/passaporte_web/configuration.rb
passaporteweb-client-0.0.15 lib/passaporte_web/configuration.rb
passaporteweb-client-0.0.14 lib/passaporte_web/configuration.rb
passaporteweb-client-0.0.13 lib/passaporte_web/configuration.rb
passaporteweb-client-0.0.12 lib/passaporte_web/configuration.rb
passaporteweb-client-0.0.11 lib/passaporte_web/configuration.rb
passaporteweb-client-0.0.10 lib/passaporte_web/configuration.rb