Sha256: fb06e24187b0c0858a295936b00d1a99aa0588278fb36a70deec57d67423e2b7

Contents?: true

Size: 1 KB

Versions: 19

Compression:

Stored size: 1 KB

Contents

require 'rubygems'
require 'httparty'
require 'json'

require 'currency_cloud/resource'
require 'currency_cloud/errors/error_utils'
lib_path = File.join(File.dirname(__FILE__), '**/*.*')
Dir[lib_path].sort.each { |f| require f }

module CurrencyCloud
  UUID_REGEX = /[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i

  class << self
     attr_accessor :environment, :login_id, :api_key, :token
  end

  def self.session
    @session ||= CurrencyCloud::Session.new(environment, login_id, api_key, token)
  end

  def self.close_session
    @session.close if @session
    true
  end

  def self.reset_session
    @session = nil
    @token = nil
  end

  def self.on_behalf_of(contact_id)
    raise CurrencyCloud::GeneralError, '#on_behalf_of has already been set' unless session.on_behalf_of.nil?
    raise CurrencyCloud::GeneralError, 'contact id for on behalf of is not a UUID' unless UUID_REGEX.match(contact_id)

    session.on_behalf_of = contact_id
    yield
  ensure
    session.on_behalf_of = nil
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
currency_cloud-1.6.0 lib/currency_cloud.rb
currency_cloud-1.5.0 lib/currency_cloud.rb
currency_cloud-1.4.0 lib/currency_cloud.rb
currency_cloud-1.3.1 lib/currency_cloud.rb
currency_cloud-1.3.0 lib/currency_cloud.rb
currency_cloud-1.2.1 lib/currency_cloud.rb
currency_cloud-1.1.4 lib/currency_cloud.rb
currency_cloud-1.0.3 lib/currency_cloud.rb
currency_cloud-0.17.7 lib/currency_cloud.rb
currency_cloud-0.16.2 lib/currency_cloud.rb
currency_cloud-0.15.8 lib/currency_cloud.rb
currency_cloud-0.14.2 lib/currency_cloud.rb
currency_cloud-0.12.5 lib/currency_cloud.rb
currency_cloud-0.12.4 lib/currency_cloud.rb
currency_cloud-0.11.2 lib/currency_cloud.rb
currency_cloud-0.10.0 lib/currency_cloud.rb
currency_cloud-0.9.0 lib/currency_cloud.rb
currency_cloud-0.8.2 lib/currency_cloud.rb
currency_cloud-0.8.0 lib/currency_cloud.rb