Class: LaunchDarkly::OpenFeature::Impl::DataSourceStatusListener

Inherits:
Object
  • Object
show all
Defined in:
lib/ldclient-openfeature/impl/event_listeners.rb

Overview

Translates LaunchDarkly data source status changes into OpenFeature provider events.

Instance Method Summary collapse

Constructor Details

#initialize(provider) ⇒ DataSourceStatusListener

Returns a new instance of DataSourceStatusListener.

Parameters:



16
17
18
# File 'lib/ldclient-openfeature/impl/event_listeners.rb', line 16

def initialize(provider)
  @provider = provider
end

Instance Method Details

#update(status) ⇒ void

This method returns an undefined value.

Parameters:

  • status (LaunchDarkly::Interfaces::DataSource::Status)


25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/ldclient-openfeature/impl/event_listeners.rb', line 25

def update(status)
  case status.state
  when ::LaunchDarkly::Interfaces::DataSource::Status::VALID
    @provider.emit_event(::OpenFeature::SDK::ProviderEvent::PROVIDER_READY)
  when ::LaunchDarkly::Interfaces::DataSource::Status::INTERRUPTED
    @provider.emit_event(
      ::OpenFeature::SDK::ProviderEvent::PROVIDER_STALE,
      message: message(status, "the data source has been interrupted")
    )
  when ::LaunchDarkly::Interfaces::DataSource::Status::OFF
    @provider.emit_event(
      ::OpenFeature::SDK::ProviderEvent::PROVIDER_ERROR,
      error_code: ::OpenFeature::SDK::Provider::ErrorCode::GENERAL,
      message: message(status, "the data source has been permanently shut down")
    )
  end
end