Module: LaunchDarkly::Interfaces::DataSource

Included in:
LaunchDarkly::Impl::Integrations::TestData::TestDataSource
Defined in:
lib/ldclient-rb/interfaces.rb,
lib/ldclient-rb/interfaces.rb

Overview

Mixin that defines the required methods of a data source implementation. This is the component that delivers feature flag data from LaunchDarkly to the LDClient by putting the data in the FeatureStore. It is expected to run concurrently on its own thread.

The client has its own standard implementation, which uses either a streaming connection or polling depending on your configuration. Normally you will not need to use another one except for testing purposes. Two such test fixtures are LaunchDarkly::Integrations::FileData and LaunchDarkly::Integrations::TestData.

Defined Under Namespace

Modules: StatusProvider, UpdateSink Classes: ErrorInfo, Status

Instance Method Summary collapse

Instance Method Details

#initialized?Boolean

Checks whether the data source has finished initializing. Initialization is considered done once it has received one complete data set from LaunchDarkly.

Returns:

  • (Boolean)

    true if initialization is complete



397
398
# File 'lib/ldclient-rb/interfaces.rb', line 397

def initialized?
end

#startConcurrent::Event

Puts the data source into an active state. Normally this means it will make its first connection attempt to LaunchDarkly. If ‘start` has already been called, calling it again should simply return the same value as the first call.

Returns:

  • (Concurrent::Event)

    an Event which will be set once initialization is complete



407
408
# File 'lib/ldclient-rb/interfaces.rb', line 407

def start
end

#stopObject

Puts the data source into an inactive state and releases all of its resources. This state should be considered permanent (‘start` does not have to work after `stop`).



414
415
# File 'lib/ldclient-rb/interfaces.rb', line 414

def stop
end