Sha256: 588efc1320e9834f1b7e598b2044c5db535f0e707863042339e6938c025b1c0a

Contents?: true

Size: 723 Bytes

Versions: 2

Compression:

Stored size: 723 Bytes

Contents

module XEClient
  class Client

    DEFAULT_URL = "https://xecdapi.xe.com"

    include Virtus.model
    attribute :account_id, String
    attribute :api_key, String
    attribute :url, String, default: DEFAULT_URL

    include ActiveModel::Validations
    validates :account_id, :api_key, presence: true

    def convert_from(base_currency, counter_currencies, amount)
      args = default_args.merge(
        base_currency: base_currency,
        counter_currencies: counter_currencies,
        amount: amount,
      )
      raw_response = ConvertFromRequest.(args)
      ConvertFromResponse.(raw_response)
    end

    private

    def default_args
      attributes.slice(:account_id, :api_key, :url)
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
xe_client-0.2.1 lib/xe_client/client.rb
xe_client-0.2.0 lib/xe_client/client.rb