Class: StraddlePay::Config

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

Overview

Configuration for the StraddlePay client.

Examples:

StraddlePay.configure do |config|
  config.api_key     = "sk_test_..."
  config.environment = :production
  config.logger      = Rails.logger
end

Constant Summary collapse

ENVIRONMENTS =
{
  sandbox: "https://sandbox.straddle.com",
  production: "https://production.straddle.com"
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfig

Returns a new instance of Config.



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

def initialize
  @api_key = ENV.fetch("STRADDLE_API_KEY", nil)
  @environment = ENV.fetch("STRADDLE_ENVIRONMENT", "sandbox").to_sym
  @base_url = ENV.fetch("STRADDLE_BASE_URL", nil)
  @open_timeout = integer_or_default("STRADDLE_OPEN_TIMEOUT", 5)
  @read_timeout = integer_or_default("STRADDLE_READ_TIMEOUT", 30)
  validate_environment!
end

Instance Attribute Details

#api_keyString?

Returns API key for authentication.

Returns:

  • (String, nil)

    API key for authentication



21
22
23
# File 'lib/straddle_pay/config.rb', line 21

def api_key
  @api_key
end

#base_urlString

Returns resolved base URL (custom override or environment-derived).

Returns:

  • (String)

    resolved base URL (custom override or environment-derived)



51
52
53
# File 'lib/straddle_pay/config.rb', line 51

def base_url
  @base_url || ENVIRONMENTS.fetch(@environment)
end

#environmentSymbol

Returns API environment (:sandbox or :production).

Returns:

  • (Symbol)

    API environment (:sandbox or :production)



32
33
34
# File 'lib/straddle_pay/config.rb', line 32

def environment
  @environment
end

#loggerLogger

Returns configured logger, falls back to Rails.logger or $stderr.

Returns:

  • (Logger)

    configured logger, falls back to Rails.logger or $stderr



56
57
58
# File 'lib/straddle_pay/config.rb', line 56

def logger
  @logger ||= (defined?(Rails) && Rails.respond_to?(:logger) && Rails.logger) || Logger.new($stderr)
end

#open_timeoutInteger

Returns Connection open timeout in seconds (default: 5).

Returns:

  • (Integer)

    Connection open timeout in seconds (default: 5)



23
24
25
# File 'lib/straddle_pay/config.rb', line 23

def open_timeout
  @open_timeout
end

#read_timeoutInteger

Returns Response read timeout in seconds (default: 30).

Returns:

  • (Integer)

    Response read timeout in seconds (default: 30)



25
26
27
# File 'lib/straddle_pay/config.rb', line 25

def read_timeout
  @read_timeout
end