@@ -18,8 +18,7 @@ module DataSystem
1818 class ConfigBuilder
1919 def initialize
2020 @initializers = nil
21- @primary_synchronizer = nil
22- @secondary_synchronizer = nil
21+ @synchronizers = nil
2322 @fdv1_fallback_synchronizer = nil
2423 @data_store_mode = LaunchDarkly ::Interfaces ::DataSystem ::DataStoreMode ::READ_ONLY
2524 @data_store = nil
@@ -40,13 +39,12 @@ def initializers(initializers)
4039 #
4140 # Sets the synchronizers for the data system.
4241 #
43- # @param primary [ #build(String, Config)] Builder that responds to build(sdk_key, config) and returns the primary Synchronizer
44- # @param secondary [#build(String, Config), nil] Builder that responds to build(sdk_key, config) and returns the secondary Synchronizer
42+ # @param synchronizers [Array< #build(String, Config)>]
43+ # Array of builders that respond to build(sdk_key, config) and return a Synchronizer
4544 # @return [ConfigBuilder] self for chaining
4645 #
47- def synchronizers ( primary , secondary = nil )
48- @primary_synchronizer = primary
49- @secondary_synchronizer = secondary
46+ def synchronizers ( synchronizers )
47+ @synchronizers = synchronizers
5048 self
5149 end
5250
@@ -79,17 +77,11 @@ def data_store(data_store, store_mode)
7977 # Builds the data system configuration.
8078 #
8179 # @return [DataSystemConfig]
82- # @raise [ArgumentError] if configuration is invalid
8380 #
8481 def build
85- if @secondary_synchronizer && @primary_synchronizer . nil?
86- raise ArgumentError , "Primary synchronizer must be set if secondary is set"
87- end
88-
8982 DataSystemConfig . new (
9083 initializers : @initializers ,
91- primary_synchronizer : @primary_synchronizer ,
92- secondary_synchronizer : @secondary_synchronizer ,
84+ synchronizers : @synchronizers ,
9385 data_store_mode : @data_store_mode ,
9486 data_store : @data_store ,
9587 fdv1_fallback_synchronizer : @fdv1_fallback_synchronizer
@@ -151,7 +143,7 @@ def self.default
151143
152144 builder = ConfigBuilder . new
153145 builder . initializers ( [ polling_builder ] )
154- builder . synchronizers ( streaming_builder , polling_builder )
146+ builder . synchronizers ( [ streaming_builder , polling_builder ] )
155147 builder . fdv1_compatible_synchronizer ( fallback )
156148
157149 builder
@@ -169,7 +161,7 @@ def self.streaming
169161 fallback = fdv1_fallback_ds_builder
170162
171163 builder = ConfigBuilder . new
172- builder . synchronizers ( streaming_builder )
164+ builder . synchronizers ( [ streaming_builder ] )
173165 builder . fdv1_compatible_synchronizer ( fallback )
174166
175167 builder
@@ -187,7 +179,7 @@ def self.polling
187179 fallback = fdv1_fallback_ds_builder
188180
189181 builder = ConfigBuilder . new
190- builder . synchronizers ( polling_builder )
182+ builder . synchronizers ( [ polling_builder ] )
191183 builder . fdv1_compatible_synchronizer ( fallback )
192184
193185 builder
0 commit comments