Module: OllamaAgent::EnvConfig

Defined in:
lib/ollama_agent/env_config.rb

Overview

Centralized ENV parsing with safe fallbacks; warns on malformed values when OLLAMA_AGENT_DEBUG=1. Set OLLAMA_AGENT_STRICT_ENV=1 to raise ConfigurationError on invalid numeric values (CI / operators).

Class Method Summary collapse

Class Method Details

.fetch_float(name, default, strict: strict_env?) ) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
# File 'lib/ollama_agent/env_config.rb', line 32

def fetch_float(name, default, strict: strict_env?)
  v = ENV.fetch(name, nil)
  return default if v.nil? || v.to_s.strip.empty?

  Float(v)
rescue ArgumentError, TypeError
  raise ConfigurationError, "ollama_agent: #{name}=#{v.inspect} is not a valid float" if strict

  warn_invalid(name, v, default)
  default
end

.fetch_int(name, default, strict: strict_env?) ) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/ollama_agent/env_config.rb', line 20

def fetch_int(name, default, strict: strict_env?)
  v = ENV.fetch(name, nil)
  return default if v.nil? || v.to_s.strip.empty?

  Integer(v)
rescue ArgumentError, TypeError
  raise ConfigurationError, "ollama_agent: #{name}=#{v.inspect} is not a valid integer" if strict

  warn_invalid(name, v, default)
  default
end

.strict_env?Boolean

Returns true when OLLAMA_AGENT_STRICT_ENV=1 (invalid numeric ENV raises ConfigurationError).

Returns:

  • (Boolean)

    true when OLLAMA_AGENT_STRICT_ENV=1 (invalid numeric ENV raises ConfigurationError).



10
11
12
# File 'lib/ollama_agent/env_config.rb', line 10

def strict_env?
  ENV["OLLAMA_AGENT_STRICT_ENV"] == "1"
end

.warn_invalid(name, raw, fallback) ⇒ Object



14
15
16
17
18
# File 'lib/ollama_agent/env_config.rb', line 14

def warn_invalid(name, raw, fallback)
  return unless ENV["OLLAMA_AGENT_DEBUG"] == "1"

  warn "ollama_agent: #{name}=#{raw.inspect} is invalid; using #{fallback}."
end