Class: MpesaStk::Config

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

Overview

Central configuration: ENV defaults with optional overrides via MpesaStk.configure

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.settingsObject



9
10
11
# File 'lib/mpesa_stk/config.rb', line 9

def settings
  @settings ||= {}
end

Class Method Details

.configure {|settings| ... } ⇒ Object

Yields:



13
14
15
# File 'lib/mpesa_stk/config.rb', line 13

def configure
  yield(settings)
end

.env(name, override = nil) ⇒ Object



17
18
19
20
21
22
23
24
25
26
# File 'lib/mpesa_stk/config.rb', line 17

def env(name, override = nil)
  override = nil if override.respond_to?(:empty?) && override.empty?

  value = settings[name.to_sym]
  value = settings[name.to_s] if value.nil? && settings.key?(name.to_s)
  value = override unless override.nil?
  value = ENV.fetch(name.to_s, nil) if value.nil? || (value.respond_to?(:empty?) && value.empty?)

  value
end

.fetch(name, override = nil, label: nil) ⇒ Object

Raises:

  • (ArgumentError)


28
29
30
31
32
33
# File 'lib/mpesa_stk/config.rb', line 28

def fetch(name, override = nil, label: nil)
  value = env(name, override)
  raise ArgumentError, "#{label || name} is not defined" if value.nil? || value.to_s.empty?

  value
end