configcat 6.0.0 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/configcat/configcatclient.rb +39 -28
- data/lib/configcat/configcatlogger.rb +7 -7
- data/lib/configcat/configfetcher.rb +11 -10
- data/lib/configcat/configservice.rb +17 -10
- data/lib/configcat/localfiledatasource.rb +3 -3
- data/lib/configcat/rolloutevaluator.rb +16 -11
- data/lib/configcat/version.rb +1 -1
- data/lib/configcat.rb +3 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6979b91044d036414367912894396e332a9fdd10b4239e72294a74949d8e5c82
|
4
|
+
data.tar.gz: fd58f1ea297a2fce1cf47e4bfe521724677617a32163d7b5bde3f2f80234482e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ae734ae5e04ae73c6ea7eb62c48a5633a943ac009c2f7b59729028a141932cdfdfceabbdef207d774153f586c0c418df939c0042ea288debe6bfccf877765ff7
|
7
|
+
data.tar.gz: 50b222dd87b113807f72ab24f3e0dfd01bb752639ab394094e40c34461e57ca0637d59038883b78d02dcdcfcd0469bfc21c6b6a5f74ab0b4658c17fcd8d7e8bc
|
@@ -28,8 +28,9 @@ module ConfigCat
|
|
28
28
|
client = @@instances[sdk_key]
|
29
29
|
if client
|
30
30
|
if options
|
31
|
-
client.log.warn("
|
32
|
-
|
31
|
+
client.log.warn(3000, "There is an existing client instance for the specified SDK Key. " \
|
32
|
+
"No new client instance will be created and the specified options are ignored. " \
|
33
|
+
"Returning the existing client instance. SDK Key: '#{sdk_key}'.")
|
33
34
|
end
|
34
35
|
return client
|
35
36
|
end
|
@@ -105,9 +106,8 @@ module ConfigCat
|
|
105
106
|
def get_value(key, default_value, user = nil)
|
106
107
|
settings, fetch_time = _get_settings()
|
107
108
|
if settings.nil?
|
108
|
-
message = "
|
109
|
-
|
110
|
-
@log.error(message)
|
109
|
+
message = "Config JSON is not present when evaluating setting '#{key}'. Returning the `default_value` parameter that you specified in your application: '#{default_value}'."
|
110
|
+
@log.error(1000, message)
|
111
111
|
@hooks.invoke_on_flag_evaluated(EvaluationDetails.from_error(key, default_value, error: message))
|
112
112
|
return default_value
|
113
113
|
end
|
@@ -124,11 +124,11 @@ module ConfigCat
|
|
124
124
|
def get_value_details(key, default_value, user = nil)
|
125
125
|
settings, fetch_time = _get_settings()
|
126
126
|
if settings.nil?
|
127
|
-
message = "
|
128
|
-
|
129
|
-
|
130
|
-
@hooks.invoke_on_flag_evaluated(
|
131
|
-
return
|
127
|
+
message = "Config JSON is not present when evaluating setting '#{key}'. Returning the `default_value` parameter that you specified in your application: '#{default_value}'."
|
128
|
+
@log.error(1000, message)
|
129
|
+
details = EvaluationDetails.from_error(key, default_value, error: message)
|
130
|
+
@hooks.invoke_on_flag_evaluated(details)
|
131
|
+
return details
|
132
132
|
end
|
133
133
|
details = _evaluate(key, user, default_value, nil, settings, fetch_time)
|
134
134
|
return details
|
@@ -140,6 +140,7 @@ module ConfigCat
|
|
140
140
|
def get_all_keys
|
141
141
|
settings, _ = _get_settings()
|
142
142
|
if settings === nil
|
143
|
+
@log.error(1000, "Config JSON is not present. Returning empty list.")
|
143
144
|
return []
|
144
145
|
end
|
145
146
|
return settings.keys
|
@@ -152,15 +153,13 @@ module ConfigCat
|
|
152
153
|
# :param user [User] the user object to identify the caller.
|
153
154
|
# :return the variation ID.
|
154
155
|
def get_variation_id(key, default_variation_id, user = nil)
|
155
|
-
|
156
|
-
|
156
|
+
ConfigCat.logger.warn("get_variation_id is deprecated and will be removed in a future major version. " \
|
157
|
+
"Please use [get_value_details] instead.")
|
157
158
|
|
158
159
|
settings, fetch_time = _get_settings()
|
159
160
|
if settings === nil
|
160
|
-
message = "
|
161
|
-
|
162
|
-
[key, default_variation_id.to_s]
|
163
|
-
@log.error(message)
|
161
|
+
message = "Config JSON is not present when evaluating setting '#{key}'. Returning the `default_variation_id` parameter that you specified in your application: '#{default_variation_id}'."
|
162
|
+
@log.error(1000, message)
|
164
163
|
@hooks.invoke_on_flag_evaluated(EvaluationDetails.from_error(key, nil, error: message,
|
165
164
|
variation_id: default_variation_id))
|
166
165
|
return default_variation_id
|
@@ -174,12 +173,17 @@ module ConfigCat
|
|
174
173
|
# :param user [User] the user object to identify the caller.
|
175
174
|
# :return list of variation IDs
|
176
175
|
def get_all_variation_ids(user = nil)
|
177
|
-
|
178
|
-
|
176
|
+
ConfigCat.logger.warn("get_all_variation_ids is deprecated and will be removed in a future major version. " \
|
177
|
+
"Please use [get_value_details] instead.")
|
178
|
+
|
179
|
+
settings, _ = _get_settings()
|
180
|
+
if settings === nil
|
181
|
+
@log.error(1000, "Config JSON is not present. Returning empty list.")
|
182
|
+
return []
|
183
|
+
end
|
179
184
|
|
180
|
-
keys = get_all_keys()
|
181
185
|
variation_ids = []
|
182
|
-
for key in keys
|
186
|
+
for key in settings.keys
|
183
187
|
variation_id = get_variation_id(key, nil, user)
|
184
188
|
if !variation_id.equal?(nil)
|
185
189
|
variation_ids.push(variation_id)
|
@@ -195,7 +199,7 @@ module ConfigCat
|
|
195
199
|
def get_key_and_value(variation_id)
|
196
200
|
settings, _ = _get_settings()
|
197
201
|
if settings === nil
|
198
|
-
@log.
|
202
|
+
@log.error(1000, "Config JSON is not present. Returning nil.")
|
199
203
|
return nil
|
200
204
|
end
|
201
205
|
|
@@ -219,7 +223,7 @@ module ConfigCat
|
|
219
223
|
end
|
220
224
|
end
|
221
225
|
|
222
|
-
@log.error("Could not find the setting for the
|
226
|
+
@log.error(2011, "Could not find the setting for the specified variation ID: '#{variation_id}'.")
|
223
227
|
end
|
224
228
|
|
225
229
|
# Evaluates and returns the values of all feature flags and settings.
|
@@ -227,9 +231,14 @@ module ConfigCat
|
|
227
231
|
# :param user [User] the user object to identify the caller.
|
228
232
|
# :return dictionary of values
|
229
233
|
def get_all_values(user = nil)
|
230
|
-
|
234
|
+
settings, _ = _get_settings()
|
235
|
+
if settings === nil
|
236
|
+
@log.error(1000, "Config JSON is not present. Returning empty dictionary.")
|
237
|
+
return {}
|
238
|
+
end
|
239
|
+
|
231
240
|
all_values = {}
|
232
|
-
for key in keys
|
241
|
+
for key in settings.keys
|
233
242
|
value = get_value(key, nil, user)
|
234
243
|
if !value.equal?(nil)
|
235
244
|
all_values[key] = value
|
@@ -245,7 +254,7 @@ module ConfigCat
|
|
245
254
|
def get_all_value_details(user = nil)
|
246
255
|
settings, fetch_time = _get_settings()
|
247
256
|
if settings.nil?
|
248
|
-
@log.error("
|
257
|
+
@log.error(1000, "Config JSON is not present. Returning empty list.")
|
249
258
|
return []
|
250
259
|
end
|
251
260
|
|
@@ -282,14 +291,16 @@ module ConfigCat
|
|
282
291
|
|
283
292
|
# Configures the SDK to allow HTTP requests.
|
284
293
|
def set_online
|
285
|
-
|
286
|
-
|
294
|
+
if @_config_service
|
295
|
+
@_config_service.set_online
|
296
|
+
else
|
297
|
+
@log.warn(3202, "Client is configured to use the `LOCAL_ONLY` override behavior, thus `set_online()` has no effect.")
|
298
|
+
end
|
287
299
|
end
|
288
300
|
|
289
301
|
# Configures the SDK to not initiate HTTP requests and work only from its cache.
|
290
302
|
def set_offline
|
291
303
|
@_config_service.set_offline if @_config_service
|
292
|
-
@log.debug('Switched to OFFLINE mode.')
|
293
304
|
end
|
294
305
|
|
295
306
|
# Returns true when the SDK is configured not to initiate HTTP requests, otherwise false.
|
@@ -5,20 +5,20 @@ module ConfigCat
|
|
5
5
|
end
|
6
6
|
|
7
7
|
def debug(message)
|
8
|
-
ConfigCat.logger.debug(message)
|
8
|
+
ConfigCat.logger.debug("[0] " + message)
|
9
9
|
end
|
10
10
|
|
11
|
-
def info(message)
|
12
|
-
ConfigCat.logger.info(message)
|
11
|
+
def info(event_id, message)
|
12
|
+
ConfigCat.logger.info("[" + event_id.to_s + "] " + message)
|
13
13
|
end
|
14
14
|
|
15
|
-
def warn(message)
|
16
|
-
ConfigCat.logger.warn(message)
|
15
|
+
def warn(event_id, message)
|
16
|
+
ConfigCat.logger.warn("[" + event_id.to_s + "] " + message)
|
17
17
|
end
|
18
18
|
|
19
|
-
def error(message)
|
19
|
+
def error(event_id, message)
|
20
20
|
@hooks.invoke_on_error(message)
|
21
|
-
ConfigCat.logger.error(message)
|
21
|
+
ConfigCat.logger.error("[" + event_id.to_s + "] " + message)
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
@@ -140,12 +140,13 @@ module ConfigCat
|
|
140
140
|
# Try to download again with the new url
|
141
141
|
|
142
142
|
if redirect == RedirectMode::SHOULD_REDIRECT
|
143
|
-
@log.warn("
|
143
|
+
@log.warn(3002, "The `dataGovernance` parameter specified at the client initialization is not in sync with the preferences on the ConfigCat Dashboard. " \
|
144
|
+
"Read more: https://configcat.com/docs/advanced/data-governance/")
|
144
145
|
end
|
145
146
|
|
146
147
|
# To prevent loops we check if we retried at least 3 times with the new base_url
|
147
148
|
if retries >= 2
|
148
|
-
@log.error("
|
149
|
+
@log.error(1104, "Redirection loop encountered while trying to fetch config JSON. Please contact us at https://configcat.com/support/")
|
149
150
|
return fetch_response
|
150
151
|
end
|
151
152
|
|
@@ -182,23 +183,23 @@ module ConfigCat
|
|
182
183
|
when Net::HTTPNotModified
|
183
184
|
return FetchResponse.not_modified
|
184
185
|
when Net::HTTPNotFound, Net::HTTPForbidden
|
185
|
-
error = "
|
186
|
-
@log.error(error)
|
186
|
+
error = "Your SDK Key seems to be wrong. You can find the valid SDK Key at https://app.configcat.com/sdkkey. Received unexpected response: #{response}"
|
187
|
+
@log.error(1100, error)
|
187
188
|
return FetchResponse.failure(error, false)
|
188
189
|
else
|
189
190
|
raise Net::HTTPError.new("", response)
|
190
191
|
end
|
191
192
|
rescue Net::HTTPError => e
|
192
|
-
error = "Unexpected HTTP response was received: #{e}"
|
193
|
-
@log.error(error)
|
193
|
+
error = "Unexpected HTTP response was received while trying to fetch config JSON: #{e}"
|
194
|
+
@log.error(1101, error)
|
194
195
|
return FetchResponse.failure(error, true)
|
195
196
|
rescue Timeout::Error => e
|
196
|
-
error = "Request timed out. Timeout values: [connect: #{get_open_timeout()}s, read: #{get_read_timeout()}s]"
|
197
|
-
@log.error(error)
|
197
|
+
error = "Request timed out while trying to fetch config JSON. Timeout values: [connect: #{get_open_timeout()}s, read: #{get_read_timeout()}s]"
|
198
|
+
@log.error(1102, error)
|
198
199
|
return FetchResponse.failure(error, true)
|
199
200
|
rescue Exception => e
|
200
|
-
error = "
|
201
|
-
@log.error(error)
|
201
|
+
error = "Unexpected error occurred while trying to fetch config JSON: #{e}"
|
202
|
+
@log.error(1103, error)
|
202
203
|
return FetchResponse.failure(error, true)
|
203
204
|
end
|
204
205
|
end
|
@@ -24,7 +24,7 @@ module ConfigCat
|
|
24
24
|
@fetch_finished = Concurrent::Event.new
|
25
25
|
@start_time = Utils.get_utc_now_seconds_since_epoch
|
26
26
|
|
27
|
-
if @polling_mode.is_a?(AutoPollingMode)
|
27
|
+
if @polling_mode.is_a?(AutoPollingMode) && !@is_offline
|
28
28
|
start_poll
|
29
29
|
else
|
30
30
|
set_initialized
|
@@ -34,7 +34,10 @@ module ConfigCat
|
|
34
34
|
def get_settings
|
35
35
|
if @polling_mode.is_a?(LazyLoadingMode)
|
36
36
|
entry, _ = fetch_if_older(Utils.get_utc_now_seconds_since_epoch - @polling_mode.cache_refresh_interval_seconds)
|
37
|
-
return entry.
|
37
|
+
return !entry.empty? ?
|
38
|
+
[entry.config.fetch(FEATURE_FLAGS, {}), entry.fetch_time] :
|
39
|
+
[nil, Utils::DISTANT_PAST]
|
40
|
+
|
38
41
|
elsif @polling_mode.is_a?(AutoPollingMode) && !@initialized.set?
|
39
42
|
elapsed_time = Utils.get_utc_now_seconds_since_epoch - @start_time # Elapsed time in seconds
|
40
43
|
if elapsed_time < @polling_mode.max_init_wait_time_seconds
|
@@ -43,13 +46,17 @@ module ConfigCat
|
|
43
46
|
# Max wait time expired without result, notify subscribers with the cached config.
|
44
47
|
if !@initialized.set?
|
45
48
|
set_initialized
|
46
|
-
return
|
49
|
+
return !@cached_entry.empty? ?
|
50
|
+
[@cached_entry.config.fetch(FEATURE_FLAGS, {}), @cached_entry.fetch_time] :
|
51
|
+
[nil, Utils::DISTANT_PAST]
|
47
52
|
end
|
48
53
|
end
|
49
54
|
end
|
50
55
|
|
51
56
|
entry, _ = fetch_if_older(Utils::DISTANT_PAST, prefer_cache: true)
|
52
|
-
return entry.
|
57
|
+
return !entry.empty? ?
|
58
|
+
[entry.config.fetch(FEATURE_FLAGS, {}), entry.fetch_time] :
|
59
|
+
[nil, Utils::DISTANT_PAST]
|
53
60
|
end
|
54
61
|
|
55
62
|
# :return [RefreshResult]
|
@@ -68,7 +75,7 @@ module ConfigCat
|
|
68
75
|
if @polling_mode.is_a?(AutoPollingMode)
|
69
76
|
start_poll
|
70
77
|
end
|
71
|
-
@log.
|
78
|
+
@log.info(5200, 'Switched to ONLINE mode.')
|
72
79
|
end
|
73
80
|
end
|
74
81
|
|
@@ -84,7 +91,7 @@ module ConfigCat
|
|
84
91
|
@thread.join
|
85
92
|
end
|
86
93
|
|
87
|
-
@log.
|
94
|
+
@log.info(5200, 'Switched to OFFLINE mode.')
|
88
95
|
end
|
89
96
|
end
|
90
97
|
|
@@ -127,8 +134,8 @@ module ConfigCat
|
|
127
134
|
|
128
135
|
# If we are in offline mode we are not allowed to initiate fetch.
|
129
136
|
if @is_offline
|
130
|
-
offline_warning =
|
131
|
-
@log.warn(offline_warning)
|
137
|
+
offline_warning = "Client is in offline mode, it cannot initiate HTTP calls."
|
138
|
+
@log.warn(3200, offline_warning)
|
132
139
|
return @cached_entry, offline_warning
|
133
140
|
end
|
134
141
|
end
|
@@ -196,7 +203,7 @@ module ConfigCat
|
|
196
203
|
@cached_entry_string = json_string
|
197
204
|
return ConfigEntry.create_from_json(JSON.parse(json_string))
|
198
205
|
rescue Exception => e
|
199
|
-
@log.error("
|
206
|
+
@log.error(2200, "Error occurred while reading the cache. #{e}")
|
200
207
|
return ConfigEntry::EMPTY
|
201
208
|
end
|
202
209
|
end
|
@@ -205,7 +212,7 @@ module ConfigCat
|
|
205
212
|
begin
|
206
213
|
@config_cache.set(@cache_key, config_entry.to_json.to_json)
|
207
214
|
rescue Exception => e
|
208
|
-
@log.error("
|
215
|
+
@log.error(2201, "Error occurred while writing the cache. #{e}")
|
209
216
|
end
|
210
217
|
end
|
211
218
|
end
|
@@ -19,7 +19,7 @@ module ConfigCat
|
|
19
19
|
super(override_behaviour)
|
20
20
|
@log = log
|
21
21
|
if !File.exists?(file_path)
|
22
|
-
@log.error("
|
22
|
+
@log.error(1300, "Cannot find the local config file '#{file_path}'. This is a path that your application provided to the ConfigCat SDK by passing it to the `LocalFileFlagOverrides.new()` method. Read more: https://configcat.com/docs/sdk-reference/ruby/#json-file")
|
23
23
|
end
|
24
24
|
@_file_path = file_path
|
25
25
|
@_settings = nil
|
@@ -51,9 +51,9 @@ module ConfigCat
|
|
51
51
|
end
|
52
52
|
end
|
53
53
|
rescue JSON::ParserError => e
|
54
|
-
@log.error("
|
54
|
+
@log.error(2302, "Failed to decode JSON from the local config file '#{@_file_path}'. #{e}")
|
55
55
|
rescue Exception => e
|
56
|
-
@log.error("
|
56
|
+
@log.error(1302, "Failed to read the local config file '#{@_file_path}'. #{e}")
|
57
57
|
end
|
58
58
|
end
|
59
59
|
end
|
@@ -15,25 +15,30 @@ module ConfigCat
|
|
15
15
|
def evaluate(key:, user:, default_value:, default_variation_id:, settings:)
|
16
16
|
setting_descriptor = settings[key]
|
17
17
|
if setting_descriptor === nil
|
18
|
-
error = "
|
19
|
-
|
18
|
+
error = "Failed to evaluate setting '#{key}' (the key was not found in config JSON). " \
|
19
|
+
"Returning the `default_value` parameter that you specified in your application: '#{default_value}'. " \
|
20
|
+
"Available keys: [#{settings.keys.map { |s| "'#{s}'" }.join(", ")}]."
|
21
|
+
@log.error(1001, error)
|
20
22
|
return default_value, default_variation_id, nil, nil, error
|
21
23
|
end
|
22
24
|
|
23
25
|
rollout_rules = setting_descriptor.fetch(ROLLOUT_RULES, [])
|
24
26
|
rollout_percentage_items = setting_descriptor.fetch(ROLLOUT_PERCENTAGE_ITEMS, [])
|
25
27
|
|
26
|
-
|
27
|
-
|
28
|
+
user_has_invalid_type = !user.equal?(nil) && !user.class.equal?(User)
|
29
|
+
if user_has_invalid_type
|
30
|
+
@log.warn(4001, "Cannot evaluate targeting rules and % options for setting '#{key}' (User Object is not an instance of User type).")
|
28
31
|
user = nil
|
29
32
|
end
|
30
33
|
if user === nil
|
31
|
-
if rollout_rules.size > 0 || rollout_percentage_items.size > 0
|
32
|
-
@log.warn("
|
34
|
+
if !user_has_invalid_type && (rollout_rules.size > 0 || rollout_percentage_items.size > 0)
|
35
|
+
@log.warn(3001, "Cannot evaluate targeting rules and % options for setting '#{key}' (User Object is missing). " \
|
36
|
+
"You should pass a User Object to the evaluation methods like `get_value()` in order to make targeting work properly. " \
|
37
|
+
"Read more: https://configcat.com/docs/advanced/user-object/")
|
33
38
|
end
|
34
39
|
return_value = setting_descriptor.fetch(VALUE, default_value)
|
35
40
|
return_variation_id = setting_descriptor.fetch(VARIATION_ID, default_variation_id)
|
36
|
-
@log.info("Returning [
|
41
|
+
@log.info(5000, "Returning [#{return_value}]")
|
37
42
|
return return_value, return_variation_id, nil, nil, nil
|
38
43
|
end
|
39
44
|
|
@@ -94,7 +99,7 @@ module ConfigCat
|
|
94
99
|
end
|
95
100
|
rescue ArgumentError => e
|
96
101
|
message = format_validation_error_rule(comparison_attribute, user_value, comparator, comparison_value, e.to_s)
|
97
|
-
@log.warn(message)
|
102
|
+
@log.warn(0, message)
|
98
103
|
log_entries.push(message)
|
99
104
|
next
|
100
105
|
end
|
@@ -112,7 +117,7 @@ module ConfigCat
|
|
112
117
|
end
|
113
118
|
rescue ArgumentError => e
|
114
119
|
message = format_validation_error_rule(comparison_attribute, user_value, comparator, comparison_value, e.to_s)
|
115
|
-
@log.warn(message)
|
120
|
+
@log.warn(0, message)
|
116
121
|
log_entries.push(message)
|
117
122
|
next
|
118
123
|
end
|
@@ -131,7 +136,7 @@ module ConfigCat
|
|
131
136
|
end
|
132
137
|
rescue Exception => e
|
133
138
|
message = format_validation_error_rule(comparison_attribute, user_value, comparator, comparison_value, e.to_s)
|
134
|
-
@log.warn(message)
|
139
|
+
@log.warn(0, message)
|
135
140
|
log_entries.push(message)
|
136
141
|
next
|
137
142
|
end
|
@@ -171,7 +176,7 @@ module ConfigCat
|
|
171
176
|
log_entries.push("Returning %s" % return_value)
|
172
177
|
return return_value, return_variation_id, nil, nil, nil
|
173
178
|
ensure
|
174
|
-
@log.info(log_entries.join("\n"))
|
179
|
+
@log.info(5000, log_entries.join("\n"))
|
175
180
|
end
|
176
181
|
end
|
177
182
|
|
data/lib/configcat/version.rb
CHANGED
data/lib/configcat.rb
CHANGED
@@ -85,9 +85,9 @@ module ConfigCat
|
|
85
85
|
flag_overrides: flag_overrides,
|
86
86
|
data_governance: data_governance
|
87
87
|
)
|
88
|
+
ConfigCat.logger.warn('create_client_with_auto_poll is deprecated. Create the ConfigCat Client as a Singleton object with `configcatclient.get()` instead')
|
88
89
|
client = ConfigCatClient.get(sdk_key, options)
|
89
90
|
client.hooks.add_on_config_changed(on_configuration_changed_callback) if on_configuration_changed_callback
|
90
|
-
client.log.warn('create_client_with_auto_poll is deprecated. Create the ConfigCat Client as a Singleton object with `configcatclient.get()` instead')
|
91
91
|
return client
|
92
92
|
end
|
93
93
|
|
@@ -134,8 +134,8 @@ module ConfigCat
|
|
134
134
|
flag_overrides: flag_overrides,
|
135
135
|
data_governance: data_governance
|
136
136
|
)
|
137
|
+
ConfigCat.logger.warn('create_client_with_lazy_load is deprecated. Create the ConfigCat Client as a Singleton object with `configcatclient.get()` instead')
|
137
138
|
client = ConfigCatClient.get(sdk_key, options)
|
138
|
-
client.log.warn('create_client_with_lazy_load is deprecated. Create the ConfigCat Client as a Singleton object with `configcatclient.get()` instead')
|
139
139
|
return client
|
140
140
|
end
|
141
141
|
|
@@ -180,8 +180,8 @@ module ConfigCat
|
|
180
180
|
flag_overrides: flag_overrides,
|
181
181
|
data_governance: data_governance
|
182
182
|
)
|
183
|
+
ConfigCat.logger.warn('create_client_with_manual_poll is deprecated. Create the ConfigCat Client as a Singleton object with `configcatclient.get()` instead')
|
183
184
|
client = ConfigCatClient.get(sdk_key, options)
|
184
|
-
client.log.warn('create_client_with_manual_poll is deprecated. Create the ConfigCat Client as a Singleton object with `configcatclient.get()` instead')
|
185
185
|
return client
|
186
186
|
end
|
187
187
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: configcat
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.
|
4
|
+
version: 6.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ConfigCat
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-06-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|