Class: LaunchDarkly::DataSystem::ConfigBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/ldclient-rb/data_system.rb

Overview

Builder for the data system configuration.

Instance Method Summary collapse

Constructor Details

#initializeConfigBuilder

Returns a new instance of ConfigBuilder.



18
19
20
21
22
23
24
25
# File 'lib/ldclient-rb/data_system.rb', line 18

def initialize
  @initializers = nil
  @primary_synchronizer = nil
  @secondary_synchronizer = nil
  @fdv1_fallback_synchronizer = nil
  @data_store_mode = LaunchDarkly::Interfaces::DataSystem::DataStoreMode::READ_ONLY
  @data_store = nil
end

Instance Method Details

#buildDataSystemConfig

Builds the data system configuration.

Returns:

Raises:

  • (ArgumentError)

    if configuration is invalid



85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/ldclient-rb/data_system.rb', line 85

def build
  if @secondary_synchronizer && @primary_synchronizer.nil?
    raise ArgumentError, "Primary synchronizer must be set if secondary is set"
  end

  DataSystemConfig.new(
    initializers: @initializers,
    primary_synchronizer: @primary_synchronizer,
    secondary_synchronizer: @secondary_synchronizer,
    data_store_mode: @data_store_mode,
    data_store: @data_store,
    fdv1_fallback_synchronizer: @fdv1_fallback_synchronizer
  )
end

#data_store(data_store, store_mode) ⇒ ConfigBuilder

Sets the data store configuration for the data system.

Parameters:

Returns:



73
74
75
76
77
# File 'lib/ldclient-rb/data_system.rb', line 73

def data_store(data_store, store_mode)
  @data_store = data_store
  @data_store_mode = store_mode
  self
end

#fdv1_compatible_synchronizer(fallback) ⇒ ConfigBuilder

Configures the SDK with a fallback synchronizer that is compatible with the Flag Delivery v1 API.

Parameters:

Returns:



61
62
63
64
# File 'lib/ldclient-rb/data_system.rb', line 61

def fdv1_compatible_synchronizer(fallback)
  @fdv1_fallback_synchronizer = fallback
  self
end

#initializers(initializers) ⇒ ConfigBuilder

Sets the initializers for the data system.

Parameters:

Returns:



34
35
36
37
# File 'lib/ldclient-rb/data_system.rb', line 34

def initializers(initializers)
  @initializers = initializers
  self
end

#synchronizers(primary, secondary = nil) ⇒ ConfigBuilder

Sets the synchronizers for the data system.

Parameters:

Returns:



47
48
49
50
51
# File 'lib/ldclient-rb/data_system.rb', line 47

def synchronizers(primary, secondary = nil)
  @primary_synchronizer = primary
  @secondary_synchronizer = secondary
  self
end