configcat 8.0.0 → 9.0.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/configcatlogger.rb +23 -1
- data/lib/configcat/configservice.rb +8 -7
- data/lib/configcat/version.rb +1 -1
- metadata +36 -21
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4aad1052b20cd0204dc7b7b6a0ca9cb556e5fc43f7a5598c06441ac27e12fae0
|
|
4
|
+
data.tar.gz: 6efb60cc11630106701b68dd0d9fd14c1f1e38bb10746f4d5a031a0170052713
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 906f61166e8ecbf15ed35ba50cf0f5cfa0132a822ea2023e0639e45d8ea44f76965b8c5c67e7d64464a45afc7fa4d7da500a89f5a132ce807bf7bd734940b0af
|
|
7
|
+
data.tar.gz: 6211e2b597e3f25b09a7424906fab85a3a3edf89ab927d8c7302c35ae6703c6d1c43fd7d321bf051348a5201118c4bb90eff784327857311a1dc2e16e1336acb
|
|
@@ -5,7 +5,7 @@ module ConfigCat
|
|
|
5
5
|
end
|
|
6
6
|
|
|
7
7
|
def enabled_for?(log_level)
|
|
8
|
-
ConfigCat.logger.level <= log_level
|
|
8
|
+
coerce_log_level(ConfigCat.logger.level) <= log_level
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
def debug(message)
|
|
@@ -24,5 +24,27 @@ module ConfigCat
|
|
|
24
24
|
@hooks.invoke_on_error(message)
|
|
25
25
|
ConfigCat.logger.error("[" + event_id.to_s + "] " + message)
|
|
26
26
|
end
|
|
27
|
+
private
|
|
28
|
+
|
|
29
|
+
def coerce_log_level(level)
|
|
30
|
+
return level if level.is_a?(Integer)
|
|
31
|
+
|
|
32
|
+
case level.to_s.downcase
|
|
33
|
+
when 'trace', 'debug'
|
|
34
|
+
::Logger::DEBUG
|
|
35
|
+
when 'info'
|
|
36
|
+
::Logger::INFO
|
|
37
|
+
when 'warn'
|
|
38
|
+
::Logger::WARN
|
|
39
|
+
when 'error'
|
|
40
|
+
::Logger::ERROR
|
|
41
|
+
when 'fatal'
|
|
42
|
+
::Logger::FATAL
|
|
43
|
+
when 'unknown'
|
|
44
|
+
::Logger::UNKNOWN
|
|
45
|
+
else
|
|
46
|
+
raise ArgumentError, "invalid log level: #{level}"
|
|
47
|
+
end
|
|
48
|
+
end
|
|
27
49
|
end
|
|
28
50
|
end
|
|
@@ -31,13 +31,14 @@ module ConfigCat
|
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
def get_config
|
|
34
|
+
threshold = Utils::DISTANT_PAST
|
|
35
|
+
prefer_cached = @initialized.set?
|
|
34
36
|
if @polling_mode.is_a?(LazyLoadingMode)
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
[entry.config, entry.fetch_time] :
|
|
38
|
-
[nil, Utils::DISTANT_PAST]
|
|
37
|
+
threshold = Utils.get_utc_now_seconds_since_epoch - @polling_mode.cache_refresh_interval_seconds
|
|
38
|
+
prefer_cached = false
|
|
39
39
|
elsif @polling_mode.is_a?(AutoPollingMode) && !@initialized.set?
|
|
40
40
|
elapsed_time = Utils.get_utc_now_seconds_since_epoch - @start_time # Elapsed time in seconds
|
|
41
|
+
threshold = Utils.get_utc_now_seconds_since_epoch - @polling_mode.poll_interval_seconds
|
|
41
42
|
if elapsed_time < @polling_mode.max_init_wait_time_seconds
|
|
42
43
|
@initialized.wait(@polling_mode.max_init_wait_time_seconds - elapsed_time)
|
|
43
44
|
|
|
@@ -52,7 +53,7 @@ module ConfigCat
|
|
|
52
53
|
end
|
|
53
54
|
|
|
54
55
|
# If we are initialized, we prefer the cached results
|
|
55
|
-
entry, _ = fetch_if_older(
|
|
56
|
+
entry, _ = fetch_if_older(threshold, prefer_cached: prefer_cached)
|
|
56
57
|
return !entry.empty? ?
|
|
57
58
|
[entry.config, entry.fetch_time] :
|
|
58
59
|
[nil, Utils::DISTANT_PAST]
|
|
@@ -117,7 +118,7 @@ module ConfigCat
|
|
|
117
118
|
end
|
|
118
119
|
|
|
119
120
|
# :return [ConfigEntry, String] Returns the ConfigEntry object and error message in case of any error.
|
|
120
|
-
def fetch_if_older(threshold,
|
|
121
|
+
def fetch_if_older(threshold, prefer_cached: false)
|
|
121
122
|
# Sync up with the cache and use it when it's not expired.
|
|
122
123
|
@lock.synchronize do
|
|
123
124
|
# Sync up with the cache and use it when it's not expired.
|
|
@@ -134,7 +135,7 @@ module ConfigCat
|
|
|
134
135
|
end
|
|
135
136
|
|
|
136
137
|
# If we are in offline mode or the caller prefers cached values, do not initiate fetch.
|
|
137
|
-
if @is_offline ||
|
|
138
|
+
if @is_offline || prefer_cached
|
|
138
139
|
return @cached_entry, nil
|
|
139
140
|
end
|
|
140
141
|
end
|
data/lib/configcat/version.rb
CHANGED
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:
|
|
4
|
+
version: 9.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- ConfigCat
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-09-10 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: concurrent-ruby
|
|
@@ -44,70 +44,84 @@ dependencies:
|
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version:
|
|
47
|
+
version: 3.13.0
|
|
48
48
|
type: :development
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version:
|
|
54
|
+
version: 3.13.0
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: rake
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
59
|
- - "~>"
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version:
|
|
61
|
+
version: 13.4.0
|
|
62
62
|
type: :development
|
|
63
63
|
prerelease: false
|
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
65
65
|
requirements:
|
|
66
66
|
- - "~>"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
|
-
version:
|
|
68
|
+
version: 13.4.0
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
|
-
name:
|
|
70
|
+
name: simplecov
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
72
72
|
requirements:
|
|
73
73
|
- - "~>"
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version:
|
|
75
|
+
version: 0.22.0
|
|
76
76
|
type: :development
|
|
77
77
|
prerelease: false
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
80
|
- - "~>"
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
|
-
version:
|
|
82
|
+
version: 0.22.0
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
|
-
name:
|
|
84
|
+
name: simplecov-cobertura
|
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
|
86
86
|
requirements:
|
|
87
87
|
- - "~>"
|
|
88
88
|
- !ruby/object:Gem::Version
|
|
89
|
-
version:
|
|
89
|
+
version: 3.1.0
|
|
90
90
|
type: :development
|
|
91
91
|
prerelease: false
|
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
93
|
requirements:
|
|
94
94
|
- - "~>"
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
|
-
version:
|
|
96
|
+
version: 3.1.0
|
|
97
|
+
- !ruby/object:Gem::Dependency
|
|
98
|
+
name: webmock
|
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
|
100
|
+
requirements:
|
|
101
|
+
- - '='
|
|
102
|
+
- !ruby/object:Gem::Version
|
|
103
|
+
version: 3.25.0
|
|
104
|
+
type: :development
|
|
105
|
+
prerelease: false
|
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
107
|
+
requirements:
|
|
108
|
+
- - '='
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: 3.25.0
|
|
97
111
|
- !ruby/object:Gem::Dependency
|
|
98
112
|
name: rubocop
|
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
|
100
114
|
requirements:
|
|
101
|
-
- - "
|
|
115
|
+
- - "~>"
|
|
102
116
|
- !ruby/object:Gem::Version
|
|
103
|
-
version:
|
|
117
|
+
version: 1.28.2
|
|
104
118
|
type: :development
|
|
105
119
|
prerelease: false
|
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
121
|
requirements:
|
|
108
|
-
- - "
|
|
122
|
+
- - "~>"
|
|
109
123
|
- !ruby/object:Gem::Version
|
|
110
|
-
version:
|
|
124
|
+
version: 1.28.2
|
|
111
125
|
description: Feature Flags created by developers for developers with ❤️. ConfigCat
|
|
112
126
|
lets you manage feature flags across frontend, backend, mobile, and desktop apps
|
|
113
127
|
without (re)deploying code. % rollouts, user targeting, segmentation. Feature toggle
|
|
@@ -146,7 +160,7 @@ homepage: https://configcat.com
|
|
|
146
160
|
licenses:
|
|
147
161
|
- MIT
|
|
148
162
|
metadata: {}
|
|
149
|
-
post_install_message:
|
|
163
|
+
post_install_message:
|
|
150
164
|
rdoc_options: []
|
|
151
165
|
require_paths:
|
|
152
166
|
- lib
|
|
@@ -154,15 +168,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
154
168
|
requirements:
|
|
155
169
|
- - ">="
|
|
156
170
|
- !ruby/object:Gem::Version
|
|
157
|
-
version: '2.
|
|
171
|
+
version: '2.5'
|
|
158
172
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
159
173
|
requirements:
|
|
160
174
|
- - ">="
|
|
161
175
|
- !ruby/object:Gem::Version
|
|
162
176
|
version: '0'
|
|
163
177
|
requirements: []
|
|
164
|
-
|
|
165
|
-
|
|
178
|
+
rubyforge_project:
|
|
179
|
+
rubygems_version: 2.7.6.3
|
|
180
|
+
signing_key:
|
|
166
181
|
specification_version: 4
|
|
167
182
|
summary: ConfigCat SDK for Ruby.
|
|
168
183
|
test_files: []
|