Class: RubyPi::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/ruby_pi/configuration.rb

Overview

Holds all configurable settings for the RubyPi framework.

Examples:

Setting API keys and retry behavior

RubyPi.configure do |config|
  config.gemini_api_key   = ENV["GEMINI_API_KEY"]
  config.anthropic_api_key = ENV["ANTHROPIC_API_KEY"]
  config.openai_api_key   = ENV["OPENAI_API_KEY"]
  config.max_retries      = 5
  config.retry_base_delay = 2.0
end

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Initializes a new Configuration with sensible defaults.



58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/ruby_pi/configuration.rb', line 58

def initialize
  @gemini_api_key        = nil
  @anthropic_api_key     = nil
  @openai_api_key        = nil
  @max_retries           = 3
  @retry_base_delay      = 1.0
  @retry_max_delay       = 30.0
  @request_timeout       = 120
  @open_timeout          = 10
  @default_gemini_model  = "gemini-2.0-flash"
  @default_anthropic_model = "claude-sonnet-4-20250514"
  @default_openai_model  = "gpt-4o"
  @logger                = nil
end

Instance Attribute Details

#anthropic_api_keyString?

Returns API key for Anthropic Claude.

Returns:

  • (String, nil)

    API key for Anthropic Claude



25
26
27
# File 'lib/ruby_pi/configuration.rb', line 25

def anthropic_api_key
  @anthropic_api_key
end

#default_anthropic_modelString

Returns Default model name for Anthropic provider.

Returns:

  • (String)

    Default model name for Anthropic provider



49
50
51
# File 'lib/ruby_pi/configuration.rb', line 49

def default_anthropic_model
  @default_anthropic_model
end

#default_gemini_modelString

Returns Default model name for Gemini provider.

Returns:

  • (String)

    Default model name for Gemini provider



46
47
48
# File 'lib/ruby_pi/configuration.rb', line 46

def default_gemini_model
  @default_gemini_model
end

#default_openai_modelString

Returns Default model name for OpenAI provider.

Returns:

  • (String)

    Default model name for OpenAI provider



52
53
54
# File 'lib/ruby_pi/configuration.rb', line 52

def default_openai_model
  @default_openai_model
end

#gemini_api_keyString?

Returns API key for Google Gemini.

Returns:

  • (String, nil)

    API key for Google Gemini



22
23
24
# File 'lib/ruby_pi/configuration.rb', line 22

def gemini_api_key
  @gemini_api_key
end

#loggerLogger?

Returns Logger instance for debug output.

Returns:

  • (Logger, nil)

    Logger instance for debug output



55
56
57
# File 'lib/ruby_pi/configuration.rb', line 55

def logger
  @logger
end

#max_retriesInteger

Returns Maximum number of retry attempts for transient errors (default: 3).

Returns:

  • (Integer)

    Maximum number of retry attempts for transient errors (default: 3)



31
32
33
# File 'lib/ruby_pi/configuration.rb', line 31

def max_retries
  @max_retries
end

#open_timeoutInteger

Returns HTTP connection open timeout in seconds (default: 10).

Returns:

  • (Integer)

    HTTP connection open timeout in seconds (default: 10)



43
44
45
# File 'lib/ruby_pi/configuration.rb', line 43

def open_timeout
  @open_timeout
end

#openai_api_keyString?

Returns API key for OpenAI.

Returns:

  • (String, nil)

    API key for OpenAI



28
29
30
# File 'lib/ruby_pi/configuration.rb', line 28

def openai_api_key
  @openai_api_key
end

#request_timeoutInteger

Returns HTTP request timeout in seconds (default: 120).

Returns:

  • (Integer)

    HTTP request timeout in seconds (default: 120)



40
41
42
# File 'lib/ruby_pi/configuration.rb', line 40

def request_timeout
  @request_timeout
end

#retry_base_delayFloat

Returns Base delay in seconds for exponential backoff (default: 1.0).

Returns:

  • (Float)

    Base delay in seconds for exponential backoff (default: 1.0)



34
35
36
# File 'lib/ruby_pi/configuration.rb', line 34

def retry_base_delay
  @retry_base_delay
end

#retry_max_delayFloat

Returns Maximum delay in seconds between retries (default: 30.0).

Returns:

  • (Float)

    Maximum delay in seconds between retries (default: 30.0)



37
38
39
# File 'lib/ruby_pi/configuration.rb', line 37

def retry_max_delay
  @retry_max_delay
end

Instance Method Details

#reset!void

This method returns an undefined value.

Resets all configuration options to their default values.



76
77
78
# File 'lib/ruby_pi/configuration.rb', line 76

def reset!
  initialize
end