|
2 | 2 |
|
3 | 3 | require 'ldclient-rb/interfaces/data_system' |
4 | 4 | require 'ldclient-rb/config' |
| 5 | +require 'ldclient-rb/impl/data_system/polling' |
5 | 6 |
|
6 | 7 | module LaunchDarkly |
7 | 8 | # |
@@ -97,23 +98,39 @@ def build |
97 | 98 | end |
98 | 99 | end |
99 | 100 |
|
100 | | - # @private |
| 101 | + # |
| 102 | + # Returns a builder proc for creating a polling data source. |
| 103 | + # This is a building block that can be used with {ConfigBuilder#initializers} |
| 104 | + # or {ConfigBuilder#synchronizers} to create custom data system configurations. |
| 105 | + # |
| 106 | + # @return [Proc] A proc that takes (sdk_key, config) and returns a polling data source |
| 107 | + # |
101 | 108 | def self.polling_ds_builder |
102 | | - # TODO(fdv2): Implement polling data source builder |
103 | | - lambda do |_sdk_key, _config| |
104 | | - raise NotImplementedError, "Polling data source not yet implemented for FDv2" |
| 109 | + lambda do |sdk_key, config| |
| 110 | + LaunchDarkly::Impl::DataSystem::PollingDataSourceBuilder.new(sdk_key, config).build |
105 | 111 | end |
106 | 112 | end |
107 | 113 |
|
108 | | - # @private |
| 114 | + # |
| 115 | + # Returns a builder proc for creating an FDv1 fallback polling data source. |
| 116 | + # This is a building block that can be used with {ConfigBuilder#fdv1_compatible_synchronizer} |
| 117 | + # to provide FDv1 compatibility in custom data system configurations. |
| 118 | + # |
| 119 | + # @return [Proc] A proc that takes (sdk_key, config) and returns an FDv1 polling data source |
| 120 | + # |
109 | 121 | def self.fdv1_fallback_ds_builder |
110 | | - # TODO(fdv2): Implement FDv1 fallback polling data source builder |
111 | | - lambda do |_sdk_key, _config| |
112 | | - raise NotImplementedError, "FDv1 fallback data source not yet implemented for FDv2" |
| 122 | + lambda do |sdk_key, config| |
| 123 | + LaunchDarkly::Impl::DataSystem::FDv1PollingDataSourceBuilder.new(sdk_key, config).build |
113 | 124 | end |
114 | 125 | end |
115 | 126 |
|
116 | | - # @private |
| 127 | + # |
| 128 | + # Returns a builder proc for creating a streaming data source. |
| 129 | + # This is a building block that can be used with {ConfigBuilder#synchronizers} |
| 130 | + # to create custom data system configurations. |
| 131 | + # |
| 132 | + # @return [Proc] A proc that takes (sdk_key, config) and returns a streaming data source |
| 133 | + # |
117 | 134 | def self.streaming_ds_builder |
118 | 135 | # TODO(fdv2): Implement streaming data source builder |
119 | 136 | lambda do |_sdk_key, _config| |
|
0 commit comments