openfeature-ruby-sdk-contrib 0.0.2 → 0.0.3
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/Gemfile.lock +1 -1
- data/lib/open_feature/sdk/contrib/client.rb +13 -0
- data/lib/open_feature/sdk/contrib/providers/common.rb +16 -13
- data/lib/open_feature/sdk/contrib/providers/file_provider.rb +7 -5
- data/lib/open_feature/sdk/contrib/version.rb +1 -1
- data/lib/open_feature/sdk/contrib.rb +2 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 33279a645ab02c54060f2842ae586d244b779d20c5a3bd275486f2dbecaf0687
|
4
|
+
data.tar.gz: 6a9c0a4ce90d78978ddb4ef95e2cc880ab2601ef03bf23b7e58700e2a4b9c809
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bbf841634b916502ff751778337d6b81e8472eb1186b20a687bf7fa3accfe82a96cef52ede9a42567f04b4cdbd274d44733d07c4c043d15dc7340d0397c7e402
|
7
|
+
data.tar.gz: b52c456508a087aab56ef26a42f20177e3a71145c785ba44dff405462164d112c18a3a6e30dbd93d0c22a49690085ed0ed218f521ba56f9ff1ff83b366b8b544
|
data/Gemfile.lock
CHANGED
@@ -116,32 +116,35 @@ module OpenFeature
|
|
116
116
|
assert_type(value: source_value, default_value: default_value, return_types: [Hash])
|
117
117
|
end
|
118
118
|
|
119
|
-
|
120
|
-
|
121
|
-
# Returns a value for the requested flag_key
|
122
|
-
#
|
123
|
-
# @param flag_key [String] requested flag key
|
124
|
-
# @param type ["boolean", "number", "float", "string"]
|
125
|
-
def read_value_with_cache(flag_key:, type:)
|
119
|
+
def read_all_values_with_cache
|
126
120
|
now = Time.now.to_i
|
127
121
|
|
128
122
|
read_from_cache = if !@flag_contents
|
129
123
|
false
|
130
|
-
elsif cache_duration == Float::INFINITY
|
131
|
-
true
|
132
124
|
elsif !@last_cache
|
133
125
|
false
|
126
|
+
elsif cache_duration == Float::INFINITY
|
127
|
+
true
|
134
128
|
else
|
135
129
|
now - @last_cache < cache_duration
|
136
130
|
end
|
137
131
|
|
138
132
|
unless read_from_cache
|
139
|
-
|
140
|
-
@
|
133
|
+
read_and_parse_flags
|
134
|
+
@last_cache = Time.now.to_i
|
141
135
|
end
|
142
136
|
|
143
|
-
|
144
|
-
|
137
|
+
deep_keys.empty? ? @flag_contents : @flag_contents.dig(*deep_keys)
|
138
|
+
end
|
139
|
+
|
140
|
+
private
|
141
|
+
|
142
|
+
# Returns a value for the requested flag_key
|
143
|
+
#
|
144
|
+
# @param flag_key [String] requested flag key
|
145
|
+
# @param type ["boolean", "number", "float", "string"]
|
146
|
+
def read_value_with_cache(flag_key:, type:)
|
147
|
+
read_all_values_with_cache.detect { |f| f["kind"] == type && f["name"] == flag_key }
|
145
148
|
end
|
146
149
|
|
147
150
|
def read_and_parse_flags
|
@@ -31,11 +31,13 @@ module OpenFeature
|
|
31
31
|
|
32
32
|
return custom_parser.call(file_contents) if custom_parser
|
33
33
|
|
34
|
-
if format == :yaml
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
34
|
+
@flag_contents = if format == :yaml
|
35
|
+
YAML.safe_load(file_contents)
|
36
|
+
else
|
37
|
+
JSON.parse(file_contents)
|
38
|
+
end
|
39
|
+
|
40
|
+
@flag_contents
|
39
41
|
end
|
40
42
|
end
|
41
43
|
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require_relative "contrib/client"
|
3
4
|
require_relative "contrib/version"
|
4
5
|
require_relative "contrib/providers/common"
|
5
6
|
require_relative "contrib/providers/file_provider"
|
@@ -10,4 +11,4 @@ module OpenFeature
|
|
10
11
|
InvalidReturnValueError = Class.new(StandardError)
|
11
12
|
end
|
12
13
|
end
|
13
|
-
end
|
14
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openfeature-ruby-sdk-contrib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eugene Howe
|
@@ -179,6 +179,7 @@ files:
|
|
179
179
|
- README.md
|
180
180
|
- Rakefile
|
181
181
|
- lib/open_feature/sdk/contrib.rb
|
182
|
+
- lib/open_feature/sdk/contrib/client.rb
|
182
183
|
- lib/open_feature/sdk/contrib/providers/common.rb
|
183
184
|
- lib/open_feature/sdk/contrib/providers/file_provider.rb
|
184
185
|
- lib/open_feature/sdk/contrib/version.rb
|