Class: Payloop::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/payloop/config.rb

Overview

Thread-safe configuration for Payloop client

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_key: nil, collector_url: nil, api_url: nil, timeout: nil) ⇒ Config

Returns a new instance of Config.



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/payloop/config.rb', line 10

def initialize(api_key: nil, collector_url: nil, api_url: nil, timeout: nil)
  @api_key = api_key
  # URL precedence: constructor arg > PAYLOOP_*_URL_BASE env var > hardcoded
  # prod default. Matches the JS SDK so an integration-test run pointed at
  # staging or a local backend only requires setting the env vars in
  # `.env` — no spec changes needed.
  @collector_url = collector_url ||
                   nonempty_env("PAYLOOP_COLLECTOR_URL_BASE") ||
                   "https://collector.trypayloop.com"
  @api_url = api_url ||
             nonempty_env("PAYLOOP_API_URL_BASE") ||
             "https://api.trypayloop.com"
  @timeout = timeout || 5
  @version = Payloop::VERSION
  @attribution = Concurrent::AtomicReference.new(nil)
  @tx_uuid = Concurrent::AtomicReference.new(SecureRandom.uuid)
  @raise_if_irrelevant = Concurrent::AtomicReference.new(false)
  @secs_irrelevant_request_timeout = Concurrent::AtomicReference.new(5)
end

Instance Attribute Details

#api_keyObject (readonly)

Returns the value of attribute api_key.



8
9
10
# File 'lib/payloop/config.rb', line 8

def api_key
  @api_key
end

#api_urlObject (readonly)

Returns the value of attribute api_url.



8
9
10
# File 'lib/payloop/config.rb', line 8

def api_url
  @api_url
end

#collector_urlObject (readonly)

Returns the value of attribute collector_url.



8
9
10
# File 'lib/payloop/config.rb', line 8

def collector_url
  @collector_url
end

#timeoutObject (readonly)

Returns the value of attribute timeout.



8
9
10
# File 'lib/payloop/config.rb', line 8

def timeout
  @timeout
end

#versionObject (readonly)

Returns the value of attribute version.



8
9
10
# File 'lib/payloop/config.rb', line 8

def version
  @version
end

Instance Method Details

#attributionObject



30
31
32
# File 'lib/payloop/config.rb', line 30

def attribution
  @attribution.get
end

#attribution=(value) ⇒ Object



34
35
36
# File 'lib/payloop/config.rb', line 34

def attribution=(value)
  @attribution.set(value)
end

#new_transactionObject



62
63
64
# File 'lib/payloop/config.rb', line 62

def new_transaction
  @tx_uuid.set(SecureRandom.uuid)
end

#raise_if_irrelevantObject



46
47
48
# File 'lib/payloop/config.rb', line 46

def raise_if_irrelevant
  @raise_if_irrelevant.get
end

#raise_if_irrelevant=(value) ⇒ Object



50
51
52
# File 'lib/payloop/config.rb', line 50

def raise_if_irrelevant=(value)
  @raise_if_irrelevant.set(value)
end

#secs_irrelevant_request_timeoutObject



54
55
56
# File 'lib/payloop/config.rb', line 54

def secs_irrelevant_request_timeout
  @secs_irrelevant_request_timeout.get
end

#secs_irrelevant_request_timeout=(value) ⇒ Object



58
59
60
# File 'lib/payloop/config.rb', line 58

def secs_irrelevant_request_timeout=(value)
  @secs_irrelevant_request_timeout.set(value)
end

#tx_uuidObject



38
39
40
# File 'lib/payloop/config.rb', line 38

def tx_uuid
  @tx_uuid.get
end

#tx_uuid=(value) ⇒ Object



42
43
44
# File 'lib/payloop/config.rb', line 42

def tx_uuid=(value)
  @tx_uuid.set(value)
end