Class: Multicard::Configuration
- Inherits:
-
Object
- Object
- Multicard::Configuration
- Defined in:
- lib/multicard/configuration.rb
Constant Summary collapse
- DEFAULT_BASE_URL =
'https://api.multicard.uz'- DEFAULT_TIMEOUT =
30- DEFAULT_OPEN_TIMEOUT =
10
Instance Attribute Summary collapse
-
#application_id ⇒ Object
Returns the value of attribute application_id.
-
#base_url ⇒ Object
Returns the value of attribute base_url.
-
#logger ⇒ Object
Returns the value of attribute logger.
-
#open_timeout ⇒ Object
Returns the value of attribute open_timeout.
-
#secret ⇒ Object
Returns the value of attribute secret.
-
#store_id ⇒ Object
Returns the value of attribute store_id.
-
#timeout ⇒ Object
Returns the value of attribute timeout.
Instance Method Summary collapse
-
#initialize(**options) ⇒ Configuration
constructor
A new instance of Configuration.
-
#merge(overrides) ⇒ Object
Merge per-client overrides into this configuration.
- #validate! ⇒ Object
Constructor Details
#initialize(**options) ⇒ Configuration
Returns a new instance of Configuration.
11 12 13 14 15 16 17 18 19 |
# File 'lib/multicard/configuration.rb', line 11 def initialize(**) @application_id = [:application_id] @secret = [:secret] @base_url = ([:base_url] || DEFAULT_BASE_URL).chomp('/') @timeout = [:timeout] || DEFAULT_TIMEOUT @open_timeout = [:open_timeout] || DEFAULT_OPEN_TIMEOUT @logger = [:logger] @store_id = [:store_id] end |
Instance Attribute Details
#application_id ⇒ Object
Returns the value of attribute application_id.
5 6 7 |
# File 'lib/multicard/configuration.rb', line 5 def application_id @application_id end |
#base_url ⇒ Object
Returns the value of attribute base_url.
5 6 7 |
# File 'lib/multicard/configuration.rb', line 5 def base_url @base_url end |
#logger ⇒ Object
Returns the value of attribute logger.
5 6 7 |
# File 'lib/multicard/configuration.rb', line 5 def logger @logger end |
#open_timeout ⇒ Object
Returns the value of attribute open_timeout.
5 6 7 |
# File 'lib/multicard/configuration.rb', line 5 def open_timeout @open_timeout end |
#secret ⇒ Object
Returns the value of attribute secret.
5 6 7 |
# File 'lib/multicard/configuration.rb', line 5 def secret @secret end |
#store_id ⇒ Object
Returns the value of attribute store_id.
5 6 7 |
# File 'lib/multicard/configuration.rb', line 5 def store_id @store_id end |
#timeout ⇒ Object
Returns the value of attribute timeout.
5 6 7 |
# File 'lib/multicard/configuration.rb', line 5 def timeout @timeout end |
Instance Method Details
#merge(overrides) ⇒ Object
Merge per-client overrides into this configuration. Uses .key? for fields where nil/0/false are valid override values (e.g., store_id: nil to clear, timeout: 0 to disable).
29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/multicard/configuration.rb', line 29 def merge(overrides) self.class.new( application_id: overrides[:application_id] || application_id, secret: overrides[:secret] || secret, base_url: overrides[:base_url] || base_url, timeout: overrides.key?(:timeout) ? overrides[:timeout] : timeout, open_timeout: overrides.key?(:open_timeout) ? overrides[:open_timeout] : open_timeout, logger: overrides.key?(:logger) ? overrides[:logger] : logger, store_id: overrides.key?(:store_id) ? overrides[:store_id] : store_id ) end |
#validate! ⇒ Object
21 22 23 24 |
# File 'lib/multicard/configuration.rb', line 21 def validate! raise ArgumentError, 'application_id is required' if application_id.nil? || application_id.to_s.empty? raise ArgumentError, 'secret is required' if secret.nil? || secret.to_s.empty? end |