yggdrasil-engine 1.0.2-universal-java-17 → 1.0.3-universal-java-17
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/custom_strategy.rb +23 -1
- data/lib/libyggdrasilffi_arm64-musl.so +0 -0
- data/lib/libyggdrasilffi_arm64.dylib +0 -0
- data/lib/libyggdrasilffi_arm64.so +0 -0
- data/lib/libyggdrasilffi_x86_64-musl.so +0 -0
- data/lib/libyggdrasilffi_x86_64.dylib +0 -0
- data/lib/libyggdrasilffi_x86_64.so +0 -0
- data/lib/yggdrasil_engine.rb +1 -2
- data/lib/yggdrasilffi_arm64.dll +0 -0
- data/lib/yggdrasilffi_x86_64.dll +0 -0
- data/spec/yggdrasil_engine_spec.rb +9 -0
- metadata +4 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bfa97f3196364ccf20946c3d37ec24eaa702826724bcd856fcb16f4c7a15dd63
|
4
|
+
data.tar.gz: d52a84b7e03c40b5b5884dfed16b902c03cad05a0dfab964588b86b0f5e67207
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a1f42bb3c4aa95e18d4b53365529c80b4626cc6619126f03bbc93de54a97ffdf68c43404e478f78ca564c1350cbe9c08ce8a414c0efc07b8e04aaa1b91989540
|
7
|
+
data.tar.gz: 236f2a0e4e3cf9c24d76d882e6b778b9b83402697e534ec228dc17bed780f227ef7ffeab898a5523cccb17e9b22608e3bf4bdff83c8f8eb7398ef49f78bb0a48
|
data/lib/custom_strategy.rb
CHANGED
@@ -18,7 +18,9 @@ class CustomStrategyHandler
|
|
18
18
|
custom_strategies = {}
|
19
19
|
parsed_json = JSON.parse(json_str)
|
20
20
|
|
21
|
-
|
21
|
+
features = extract_features parsed_json
|
22
|
+
|
23
|
+
features.each do |feature|
|
22
24
|
toggle_name = feature["name"]
|
23
25
|
strategies = feature["strategies"]
|
24
26
|
|
@@ -57,4 +59,24 @@ class CustomStrategyHandler
|
|
57
59
|
|
58
60
|
results
|
59
61
|
end
|
62
|
+
|
63
|
+
private
|
64
|
+
|
65
|
+
def extract_features(data)
|
66
|
+
return data["features"] if data.is_a?(Hash) && data.key?("features")
|
67
|
+
|
68
|
+
if data.is_a?(Hash) && data.key?("events")
|
69
|
+
features = []
|
70
|
+
|
71
|
+
hydration_events = data["events"].select { |e| e["type"] == "hydration" }
|
72
|
+
features.concat(hydration_events.flat_map { |e| e["features"] || [] })
|
73
|
+
|
74
|
+
feature_updated_events = data["events"].select { |e| e["type"] == "feature-updated" }
|
75
|
+
features.concat(feature_updated_events.map { |e| e["feature"] })
|
76
|
+
|
77
|
+
return features
|
78
|
+
end
|
79
|
+
|
80
|
+
[]
|
81
|
+
end
|
60
82
|
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/lib/yggdrasil_engine.rb
CHANGED
@@ -58,7 +58,6 @@ class YggdrasilEngine
|
|
58
58
|
attach_function :free_engine, [:pointer], :void
|
59
59
|
|
60
60
|
attach_function :take_state, %i[pointer string], :pointer
|
61
|
-
attach_function :hydrate_data, %i[pointer string], :pointer
|
62
61
|
attach_function :check_enabled, %i[pointer string string string], :pointer
|
63
62
|
attach_function :check_variant, %i[pointer string string string], :pointer
|
64
63
|
attach_function :get_metrics, [:pointer], :pointer
|
@@ -81,7 +80,7 @@ class YggdrasilEngine
|
|
81
80
|
|
82
81
|
def take_state(toggles)
|
83
82
|
@custom_strategy_handler.update_strategies(toggles)
|
84
|
-
response_ptr = YggdrasilEngine.
|
83
|
+
response_ptr = YggdrasilEngine.take_state(@engine, toggles)
|
85
84
|
take_toggles_response = JSON.parse(response_ptr.read_string, symbolize_names: true)
|
86
85
|
YggdrasilEngine.free_response(response_ptr)
|
87
86
|
end
|
data/lib/yggdrasilffi_arm64.dll
CHANGED
Binary file
|
data/lib/yggdrasilffi_x86_64.dll
CHANGED
Binary file
|
@@ -103,6 +103,15 @@ RSpec.describe YggdrasilEngine do
|
|
103
103
|
toggles = yggdrasil_engine.list_known_toggles()
|
104
104
|
expect(toggles.length).to eq(3)
|
105
105
|
end
|
106
|
+
|
107
|
+
it 'should load delta format correctly' do
|
108
|
+
suite_path = File.join('../client-specification/specifications', '19-delta-api-hydration.json')
|
109
|
+
suite_data = JSON.parse(File.read(suite_path))
|
110
|
+
|
111
|
+
yggdrasil_engine.take_state(suite_data['state'].to_json)
|
112
|
+
|
113
|
+
# toggles = yggdrasil_engine.list_known_toggles()
|
114
|
+
end
|
106
115
|
end
|
107
116
|
end
|
108
117
|
|
metadata
CHANGED
@@ -1,22 +1,21 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yggdrasil-engine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: universal-java-17
|
6
6
|
authors:
|
7
7
|
- Unleash
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
10
|
date: 2023-06-28 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
13
|
+
name: ffi
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
15
15
|
requirements:
|
16
16
|
- - "~>"
|
17
17
|
- !ruby/object:Gem::Version
|
18
18
|
version: 1.16.3
|
19
|
-
name: ffi
|
20
19
|
type: :runtime
|
21
20
|
prerelease: false
|
22
21
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -47,8 +46,7 @@ homepage: http://github.com/username/my_gem
|
|
47
46
|
licenses:
|
48
47
|
- MIT
|
49
48
|
metadata:
|
50
|
-
yggdrasil_core_version: 0.
|
51
|
-
post_install_message:
|
49
|
+
yggdrasil_core_version: 0.17.0
|
52
50
|
rdoc_options: []
|
53
51
|
require_paths:
|
54
52
|
- lib
|
@@ -63,8 +61,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
63
61
|
- !ruby/object:Gem::Version
|
64
62
|
version: '0'
|
65
63
|
requirements: []
|
66
|
-
rubygems_version: 3.3
|
67
|
-
signing_key:
|
64
|
+
rubygems_version: 3.6.3
|
68
65
|
specification_version: 4
|
69
66
|
summary: Unleash engine for evaluating feature toggles
|
70
67
|
test_files: []
|