Class: GenesisRuby::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/genesis_ruby/configuration.rb

Overview

Class Configuration

Store/Retrieve configuration key/values across the Genesis library

Constant Summary collapse

DEFAULT_TIMEOUT =

Default Network Timeout

60
NETWORK_INTERFACE_NET_HTTP =

Supported Network Connections

'net-http'
DEFAULT_FORMAT_RESPONSE =

Default Format Response

true
DEFAULT_SANITIZE_RESPONSE =

Default sanitize Response

true

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Configuration constructor



29
30
31
32
# File 'lib/genesis_ruby/configuration.rb', line 29

def initialize
  @environment = GenesisRuby::Api::Constants::Environments::STAGING
  @sub_domains = available_sub_domains
end

Instance Attribute Details

#billing_api_tokenObject

Defines the Bearer token used for authorization in Billing API Service



70
71
72
# File 'lib/genesis_ruby/configuration.rb', line 70

def billing_api_token
  @billing_api_token || ''
end

#format_responseObject

Indicates if the parsed Response from Genesis should be formatted



122
123
124
125
126
# File 'lib/genesis_ruby/configuration.rb', line 122

def format_response
  return @format_response = DEFAULT_FORMAT_RESPONSE if @format_response.nil?

  @format_response
end

#interfaceObject

Network Interface used for executing requests



82
83
84
# File 'lib/genesis_ruby/configuration.rb', line 82

def interface
  @interface ||= NETWORK_INTERFACE_NET_HTTP
end

#passwordObject

Genesis Password



40
41
42
# File 'lib/genesis_ruby/configuration.rb', line 40

def password
  @password ||= ''
end

#sanitize_responseObject

Indicates if the parsed Response from Genesis should be sanitized



129
130
131
132
133
# File 'lib/genesis_ruby/configuration.rb', line 129

def sanitize_response
  return @sanitize_response = DEFAULT_SANITIZE_RESPONSE if @sanitize_response.nil?

  @sanitize_response
end

#tokenObject

Genesis Token required from some of the requests



45
46
47
# File 'lib/genesis_ruby/configuration.rb', line 45

def token
  @token ||= ''
end

#usernameObject

Genesis Username



35
36
37
# File 'lib/genesis_ruby/configuration.rb', line 35

def username
  @username ||= ''
end

Instance Method Details

#endpointObject

Genesis endpoint



55
56
57
# File 'lib/genesis_ruby/configuration.rb', line 55

def endpoint
  @endpoint ||= ''
end

#endpoint=(endpoint) ⇒ Object

Endpoint setter



108
109
110
111
112
113
114
115
116
117
118
119
# File 'lib/genesis_ruby/configuration.rb', line 108

def endpoint=(endpoint)
  endpoint_argument = endpoint.downcase
  parsed_endpoint   = nil

  endpoint_aliases.each do |available_end, endpoint_alias|
    parsed_endpoint = available_end if endpoint_alias.include? endpoint_argument
  end

  raise InvalidArgumentError, 'Invalid Endpoint' if parsed_endpoint.nil?

  @endpoint = parsed_endpoint
end

#environmentObject

Genesis Environment



50
51
52
# File 'lib/genesis_ruby/configuration.rb', line 50

def environment
  @environment ||= ''
end

#environment=(environment) ⇒ Object

Environment setter



94
95
96
97
98
99
100
101
102
103
104
105
# File 'lib/genesis_ruby/configuration.rb', line 94

def environment=(environment)
  environment_argument = environment.downcase
  parsed_env           = nil

  environment_aliases.each do |available_env, env_alias|
    parsed_env = available_env if env_alias.include? environment_argument
  end

  raise InvalidArgumentError, 'Invalid Environment' if parsed_env.nil?

  @environment = parsed_env
end

#force_smart_routingObject

Enable Smart Routing for Financial transaction requests



65
66
67
# File 'lib/genesis_ruby/configuration.rb', line 65

def force_smart_routing
  @force_smart_routing ||= false
end

#force_smart_routing=(value) ⇒ Object

Enable Smart Routing for Financial transaction requests



136
137
138
139
140
141
142
# File 'lib/genesis_ruby/configuration.rb', line 136

def force_smart_routing=(value)
  unless [true, false].include? value
    raise InvalidArgumentError, 'Given invalid Force Smart Routing value! Allowed: true, false'
  end

  @force_smart_routing = value
end

#sub_domain(sub) ⇒ Object

Get a sub-domain host based on the environment



87
88
89
90
91
# File 'lib/genesis_ruby/configuration.rb', line 87

def sub_domain(sub)
  return @sub_domains[sub.to_sym][@environment] if @sub_domains.key?(sub.to_sym)

  nil
end

#timeoutObject

Genesis Request Timeout



60
61
62
# File 'lib/genesis_ruby/configuration.rb', line 60

def timeout
  @timeout ||= DEFAULT_TIMEOUT
end

#timeout=(value) ⇒ Object

Genesis Request Timeout



75
76
77
78
79
# File 'lib/genesis_ruby/configuration.rb', line 75

def timeout=(value)
  timeout = value.to_i

  @timeout = timeout <= 0 ? DEFAULT_TIMEOUT : timeout
end