Module: Regaliator

Defined in:
lib/regaliator.rb,
lib/regaliator/v15.rb,
lib/regaliator/v30.rb,
lib/regaliator/v31.rb,
lib/regaliator/client.rb,
lib/regaliator/request.rb,
lib/regaliator/version.rb,
lib/regaliator/endpoint.rb,
lib/regaliator/response.rb,
lib/regaliator/v15/bill.rb,
lib/regaliator/v15/rate.rb,
lib/regaliator/v30/bill.rb,
lib/regaliator/v30/rate.rb,
lib/regaliator/v15/biller.rb,
lib/regaliator/v15/client.rb,
lib/regaliator/v30/biller.rb,
lib/regaliator/v30/client.rb,
lib/regaliator/v15/account.rb,
lib/regaliator/v30/account.rb,
lib/regaliator/configuration.rb,
lib/regaliator/v15/transaction.rb,
lib/regaliator/v30/transaction.rb,
lib/regaliator/api_version_error.rb

Defined Under Namespace

Modules: V15, V30, V31 Classes: APIVersionError, Client, Configuration, Endpoint, Request, Response

Constant Summary collapse

API_VERSIONS =
{
  V15::API_VERSION => V15::Client,
  V30::API_VERSION => V30::Client,
  V31::API_VERSION => V31::Client
}.freeze
VERSION =
'4.0.1'

Class Method Summary collapse

Class Method Details

.configurationObject



15
16
17
# File 'lib/regaliator.rb', line 15

def configuration
  @config ||= Configuration.new
end

.configure {|configuration| ... } ⇒ Object

Yields:



19
20
21
# File 'lib/regaliator.rb', line 19

def configure
  yield(configuration)
end

.method_missing(method_name, *args) ⇒ Object



34
35
36
37
38
39
40
41
# File 'lib/regaliator.rb', line 34

def method_missing(method_name, *args)
  client = new
  if client.respond_to?(method_name)
    client.send(method_name, *args)
  else
    super
  end
end

.new(arg = nil) {|config| ... } ⇒ Object

Yields:

  • (config)


23
24
25
26
27
28
29
30
31
32
# File 'lib/regaliator.rb', line 23

def new(arg = nil)
  config = get_configuration(arg)
  yield(config) if block_given?

  unless API_VERSIONS.key?(config.version)
    raise APIVersionError.new(config.version)
  end

  API_VERSIONS[config.version].new(config)
end