Class: ReductoAI::Config
- Inherits:
-
Object
- Object
- ReductoAI::Config
- Defined in:
- lib/reducto_ai/config.rb
Overview
Configuration class for the ReductoAI client.
Manages API credentials, timeouts, logging, and exception handling behavior. Configuration can be set via environment variables or through the global configure method.
Instance Attribute Summary collapse
-
#api_key ⇒ String?
Reducto API key (from REDUCTO_API_KEY env var).
-
#base_url ⇒ String
Base URL for Reducto API (default: https://platform.reducto.ai).
-
#logger ⇒ Logger
Returns the logger instance.
-
#open_timeout ⇒ Integer
Connection open timeout in seconds (default: 5).
-
#read_timeout ⇒ Integer
Request read timeout in seconds (default: 30).
-
#webhook_secret ⇒ String?
Svix webhook signing secret.
-
#webhook_secret_resolver ⇒ Proc?
Proc that resolves webhook secret from request headers.
Instance Method Summary collapse
-
#initialize ⇒ Config
constructor
Creates a new configuration instance with defaults from environment variables.
Constructor Details
#initialize ⇒ Config
Creates a new configuration instance with defaults from environment variables.
51 52 53 54 55 56 57 58 |
# File 'lib/reducto_ai/config.rb', line 51 def initialize @api_key = ENV.fetch("REDUCTO_API_KEY", nil) @base_url = ENV.fetch("REDUCTO_BASE_URL", "https://platform.reducto.ai") @open_timeout = integer_or_default("REDUCTO_OPEN_TIMEOUT", 5) @read_timeout = integer_or_default("REDUCTO_READ_TIMEOUT", 30) @webhook_secret = ENV.fetch("REDUCTO_WEBHOOK_SECRET", nil) @webhook_secret_resolver = nil end |
Instance Attribute Details
#api_key ⇒ String?
Returns Reducto API key (from REDUCTO_API_KEY env var).
30 31 32 |
# File 'lib/reducto_ai/config.rb', line 30 def api_key @api_key end |
#base_url ⇒ String
Returns Base URL for Reducto API (default: https://platform.reducto.ai).
33 34 35 |
# File 'lib/reducto_ai/config.rb', line 33 def base_url @base_url end |
#logger ⇒ Logger
Returns the logger instance.
Defaults to Rails.logger if Rails is available, otherwise a stderr Logger.
65 66 67 |
# File 'lib/reducto_ai/config.rb', line 65 def logger @logger ||= (defined?(::Rails) && ::Rails.respond_to?(:logger) && ::Rails.logger) || Logger.new($stderr) end |
#open_timeout ⇒ Integer
Returns Connection open timeout in seconds (default: 5).
36 37 38 |
# File 'lib/reducto_ai/config.rb', line 36 def open_timeout @open_timeout end |
#read_timeout ⇒ Integer
Returns Request read timeout in seconds (default: 30).
39 40 41 |
# File 'lib/reducto_ai/config.rb', line 39 def read_timeout @read_timeout end |
#webhook_secret ⇒ String?
Returns Svix webhook signing secret.
42 43 44 |
# File 'lib/reducto_ai/config.rb', line 42 def webhook_secret @webhook_secret end |
#webhook_secret_resolver ⇒ Proc?
Returns Proc that resolves webhook secret from request headers.
45 46 47 |
# File 'lib/reducto_ai/config.rb', line 45 def webhook_secret_resolver @webhook_secret_resolver end |