Module: GetStreamRuby

Defined in:
lib/getstream_ruby.rb,
lib/getstream_ruby/client.rb,
lib/getstream_ruby/errors.rb,
lib/getstream_ruby/version.rb,
lib/getstream_ruby/configuration.rb,
lib/getstream_ruby/error_mapping.rb,
lib/getstream_ruby/resources/feed.rb,
lib/getstream_ruby/stream_response.rb

Defined Under Namespace

Modules: ErrorMapping, Resources Classes: ApiError, Client, Configuration, ConfigurationError, RateLimitError, StreamError, StreamResponse, TaskError, TransportError

Constant Summary collapse

Error =

Back-compat alias. The prior base class was ‘Error`; keep it usable so any existing `rescue GetStreamRuby::Error` clauses keep matching.

StreamError
TRANSPORT_ERROR_TYPES =

Allowed values for ‘TransportError#error_type`.

%w[
  connection_reset
  timeout
  dns_failure
  tls_handshake_failed
  unknown
].freeze
VERSION =
'7.1.0'

Class Method Summary collapse

Class Method Details

.clientObject

Default: tries .env first, then env vars



35
36
37
# File 'lib/getstream_ruby.rb', line 35

def client
  env
end

.const_missing(name) ⇒ Object



97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# File 'lib/getstream_ruby/errors.rb', line 97

def self.const_missing(name)
  if name == :APIError
    unless @apierror_alias_warned
      Kernel.warn(
        '[DEPRECATION] GetStreamRuby::APIError is renamed to ' \
        'GetStreamRuby::ApiError. The old constant will be removed in v9.0.',
      )
      @apierror_alias_warned = true
    end
    const_set(:APIError, ApiError)
    ApiError
  else
    super
  end
end

.envObject

Method 2: .env file



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

def env
  @env ||= Client.new(Configuration.from_env)
end

.env_varsObject

Method 3: Environment variables



30
31
32
# File 'lib/getstream_ruby.rb', line 30

def env_vars
  @env_vars ||= Client.new(Configuration.from_system_env)
end

.manual(api_key:, api_secret:, **options) ⇒ Object

Method 1: Manual configuration (highest priority)



15
16
17
18
19
20
21
22
# File 'lib/getstream_ruby.rb', line 15

def manual(api_key:, api_secret:, **options)
  config = Configuration.manual(
    api_key: api_key,
    api_secret: api_secret,
    **options,
  )
  Client.new(config)
end