Class: ReductoAI::Config

Inherits:
Object
  • Object
show all
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.

Examples:

Environment-based configuration

# Set these environment variables:
# REDUCTO_API_KEY=your-api-key
# REDUCTO_BASE_URL=https://platform.reducto.ai
# REDUCTO_OPEN_TIMEOUT=10
# REDUCTO_READ_TIMEOUT=60

config = ReductoAI::Config.new
config.api_key # => "your-api-key"

Explicit configuration

ReductoAI.configure do |config|
  config.api_key = "your-api-key"
  config.logger = Rails.logger
  config.open_timeout = 10
end

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfig

Creates a new configuration instance with defaults from environment variables.



48
49
50
51
52
53
54
# File 'lib/reducto_ai/config.rb', line 48

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)
  @raise_exceptions = true
end

Instance Attribute Details

#api_keyString?

Returns Reducto API key (from REDUCTO_API_KEY env var).

Returns:

  • (String, nil)

    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_urlString

Returns Base URL for Reducto API (default: https://platform.reducto.ai).

Returns:



33
34
35
# File 'lib/reducto_ai/config.rb', line 33

def base_url
  @base_url
end

#loggerLogger

Returns the logger instance.

Defaults to Rails.logger if Rails is available, otherwise a stderr Logger.

Returns:

  • (Logger)

    the logger instance



61
62
63
# File 'lib/reducto_ai/config.rb', line 61

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)



36
37
38
# File 'lib/reducto_ai/config.rb', line 36

def open_timeout
  @open_timeout
end

#raise_exceptionsBoolean

Returns Whether to raise exceptions on API errors (default: true).

Returns:

  • (Boolean)

    Whether to raise exceptions on API errors (default: true)



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

def raise_exceptions
  @raise_exceptions
end

#read_timeoutInteger

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

Returns:

  • (Integer)

    Request read timeout in seconds (default: 30)



39
40
41
# File 'lib/reducto_ai/config.rb', line 39

def read_timeout
  @read_timeout
end