Class: GetStreamRuby::Configuration
- Inherits:
-
Object
- Object
- GetStreamRuby::Configuration
- Defined in:
- lib/getstream_ruby/configuration.rb
Instance Attribute Summary collapse
-
#api_key ⇒ Object
Returns the value of attribute api_key.
-
#api_secret ⇒ Object
Returns the value of attribute api_secret.
-
#base_url ⇒ Object
Returns the value of attribute base_url.
-
#connection_keep_alive ⇒ Object
Returns the value of attribute connection_keep_alive.
-
#faraday_adapter ⇒ Object
Returns the value of attribute faraday_adapter.
-
#faraday_adapter_options ⇒ Object
Returns the value of attribute faraday_adapter_options.
-
#logger ⇒ Object
Returns the value of attribute logger.
-
#timeout ⇒ Object
Returns the value of attribute timeout.
Class Method Summary collapse
-
.from_env ⇒ Object
Method 2: .env file (loads .env file via dotenv gem, falls back to env vars).
-
.from_system_env ⇒ Object
Method 3: Environment variables (no .env file, direct system env).
-
.manual(api_key:, api_secret:, **options) ⇒ Object
Method 1: Manual configuration (no environment variables).
-
.with_overrides(overrides = {}) ⇒ Object
Class method to create configuration with overrides.
Instance Method Summary collapse
- #dup ⇒ Object
-
#initialize(api_key: nil, api_secret: nil, use_env: true, **options) ⇒ Configuration
constructor
A new instance of Configuration.
- #valid? ⇒ Boolean
- #validate! ⇒ Object
Constructor Details
#initialize(api_key: nil, api_secret: nil, use_env: true, **options) ⇒ Configuration
Returns a new instance of Configuration.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/getstream_ruby/configuration.rb', line 10 def initialize(api_key: nil, api_secret: nil, use_env: true, **) base_url = [:base_url] timeout = [:timeout] = [:http_options] || {} faraday_adapter = [:faraday_adapter] || [:faraday_adapter] = [:faraday_adapter_options] || [:faraday_adapter_options] connection_keep_alive = if .key?(:connection_keep_alive) [:connection_keep_alive] else [:connection_keep_alive] end if use_env @api_key = api_key || ENV.fetch('STREAM_API_KEY', nil) @api_secret = api_secret || ENV.fetch('STREAM_API_SECRET', nil) @base_url = base_url || ENV['STREAM_BASE_URL'] || 'https://chat.stream-io-api.com' @timeout = timeout || (ENV['STREAM_TIMEOUT'] || 30).to_i else # Manual configuration only - no environment variables @api_key = api_key @api_secret = api_secret @base_url = base_url || 'https://chat.stream-io-api.com' @timeout = timeout || 30 end @faraday_adapter = (faraday_adapter || ENV.fetch('STREAM_FARADAY_ADAPTER', nil))&.to_sym @faraday_adapter_options = || @connection_keep_alive = if connection_keep_alive.nil? ENV.fetch('STREAM_CONNECTION_KEEP_ALIVE', 'true') == 'true' else connection_keep_alive end @logger = nil end |
Instance Attribute Details
#api_key ⇒ Object
Returns the value of attribute api_key.
7 8 9 |
# File 'lib/getstream_ruby/configuration.rb', line 7 def api_key @api_key end |
#api_secret ⇒ Object
Returns the value of attribute api_secret.
7 8 9 |
# File 'lib/getstream_ruby/configuration.rb', line 7 def api_secret @api_secret end |
#base_url ⇒ Object
Returns the value of attribute base_url.
7 8 9 |
# File 'lib/getstream_ruby/configuration.rb', line 7 def base_url @base_url end |
#connection_keep_alive ⇒ Object
Returns the value of attribute connection_keep_alive.
7 8 9 |
# File 'lib/getstream_ruby/configuration.rb', line 7 def connection_keep_alive @connection_keep_alive end |
#faraday_adapter ⇒ Object
Returns the value of attribute faraday_adapter.
7 8 9 |
# File 'lib/getstream_ruby/configuration.rb', line 7 def faraday_adapter @faraday_adapter end |
#faraday_adapter_options ⇒ Object
Returns the value of attribute faraday_adapter_options.
7 8 9 |
# File 'lib/getstream_ruby/configuration.rb', line 7 def @faraday_adapter_options end |
#logger ⇒ Object
Returns the value of attribute logger.
7 8 9 |
# File 'lib/getstream_ruby/configuration.rb', line 7 def logger @logger end |
#timeout ⇒ Object
Returns the value of attribute timeout.
7 8 9 |
# File 'lib/getstream_ruby/configuration.rb', line 7 def timeout @timeout end |
Class Method Details
.from_env ⇒ Object
Method 2: .env file (loads .env file via dotenv gem, falls back to env vars)
77 78 79 80 |
# File 'lib/getstream_ruby/configuration.rb', line 77 def self.from_env require 'dotenv/load' if File.exist?('.env') && !File.empty?('.env') && !defined?(Dotenv) new(use_env: true) end |
.from_system_env ⇒ Object
Method 3: Environment variables (no .env file, direct system env)
83 84 85 |
# File 'lib/getstream_ruby/configuration.rb', line 83 def self.from_system_env new(use_env: true) end |
.manual(api_key:, api_secret:, **options) ⇒ Object
Method 1: Manual configuration (no environment variables)
72 73 74 |
# File 'lib/getstream_ruby/configuration.rb', line 72 def self.manual(api_key:, api_secret:, **) new(api_key: api_key, api_secret: api_secret, use_env: false, **) end |
.with_overrides(overrides = {}) ⇒ Object
Class method to create configuration with overrides
67 68 69 |
# File 'lib/getstream_ruby/configuration.rb', line 67 def self.with_overrides(overrides = {}) new(**overrides) end |
Instance Method Details
#dup ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/getstream_ruby/configuration.rb', line 54 def dup Configuration.new( api_key: @api_key, api_secret: @api_secret, base_url: @base_url, timeout: @timeout, faraday_adapter: @faraday_adapter, faraday_adapter_options: @faraday_adapter_options.dup, connection_keep_alive: @connection_keep_alive, ) end |
#valid? ⇒ Boolean
45 46 47 |
# File 'lib/getstream_ruby/configuration.rb', line 45 def valid? api_key && api_secret end |
#validate! ⇒ Object
49 50 51 52 |
# File 'lib/getstream_ruby/configuration.rb', line 49 def validate! raise ConfigurationError, 'API key is required' unless api_key raise ConfigurationError, 'API secret is required' unless api_secret end |