yggdrasil-engine 1.0.4-universal-java-11 → 1.1.0-universal-java-11
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/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 +15 -0
- data/lib/yggdrasilffi_arm64.dll +0 -0
- data/lib/yggdrasilffi_x86_64.dll +0 -0
- data/spec/yggdrasil_engine_spec.rb +21 -0
- 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: 3d637290ecfaf9eaf06ce3f012237db008949d79f9f23c5f97284e9120c8a0bb
|
4
|
+
data.tar.gz: ea50e3d8aabda9ef2a58136989e5833216c40a3c87867bfceb380f580354e18e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 69a38f65a703151ff7dd158c43669ec12b76c12249991c91c1f191e999022917945d8f3895249ef237e71bdf3bef853f1b351379f9c4f3656b936eb899c4cf77
|
7
|
+
data.tar.gz: 1949c013867dbb6c99fc1aa277215b998870efc4f4d48c1314b4708e8eaf38b844cb5640e67cde71cfa4accdd41098acefd898ce5f432c8f055f6b418c119cbe
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
data/lib/yggdrasil_engine.rb
CHANGED
@@ -58,6 +58,7 @@ 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 :get_state, [:pointer], :pointer
|
61
62
|
attach_function :check_enabled, %i[pointer string string string], :pointer
|
62
63
|
attach_function :check_variant, %i[pointer string string string], :pointer
|
63
64
|
attach_function :get_metrics, [:pointer], :pointer
|
@@ -85,6 +86,20 @@ class YggdrasilEngine
|
|
85
86
|
YggdrasilEngine.free_response(response_ptr)
|
86
87
|
end
|
87
88
|
|
89
|
+
def get_state
|
90
|
+
response_ptr = YggdrasilEngine.get_state(@engine)
|
91
|
+
begin
|
92
|
+
response_json = response_ptr.read_string
|
93
|
+
response = JSON.parse(response_json, symbolize_names: true)
|
94
|
+
|
95
|
+
raise "Error: #{response[:error_message]}" if response[:status_code] == ERROR_RESPONSE
|
96
|
+
|
97
|
+
response[:value].to_json
|
98
|
+
ensure
|
99
|
+
YggdrasilEngine.free_response(response_ptr)
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
88
103
|
def get_variant(name, context)
|
89
104
|
context_json = (context || {}).to_json
|
90
105
|
custom_strategy_results = @custom_strategy_handler.evaluate_custom_strategies(name, context).to_json
|
data/lib/yggdrasilffi_arm64.dll
CHANGED
Binary file
|
data/lib/yggdrasilffi_x86_64.dll
CHANGED
Binary file
|
@@ -25,6 +25,27 @@ RSpec.describe YggdrasilEngine do
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
|
+
describe '#getting state' do
|
29
|
+
it 'should return JSON string of state value (not wrapped response) and support roundtrip' do
|
30
|
+
empty_state = yggdrasil_engine.get_state
|
31
|
+
|
32
|
+
expect(empty_state).to include('"features":[]')
|
33
|
+
expect(empty_state).not_to include('status_code')
|
34
|
+
expect(empty_state).not_to include('error_message')
|
35
|
+
|
36
|
+
test_state = '{"version":1,"features":[{"name":"testFeature","enabled":true,"strategies":[{"name":"default"}]}]}'
|
37
|
+
yggdrasil_engine.take_state(test_state)
|
38
|
+
retrieved_state = yggdrasil_engine.get_state
|
39
|
+
|
40
|
+
expect(retrieved_state).to include('testFeature')
|
41
|
+
expect(retrieved_state).to include('"version":1')
|
42
|
+
expect(retrieved_state).to include('"name":"testFeature"')
|
43
|
+
expect(retrieved_state).to include('"name":"default"')
|
44
|
+
expect(retrieved_state).not_to include('status_code')
|
45
|
+
expect(retrieved_state).not_to include('error_message')
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
28
49
|
describe '#metrics' do
|
29
50
|
it 'should clear metrics when get_metrics is called' do
|
30
51
|
feature_name = 'Feature.A'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
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.1.0
|
5
5
|
platform: universal-java-11
|
6
6
|
authors:
|
7
7
|
- Unleash
|
@@ -47,7 +47,7 @@ homepage: http://github.com/username/my_gem
|
|
47
47
|
licenses:
|
48
48
|
- MIT
|
49
49
|
metadata:
|
50
|
-
yggdrasil_core_version: 0.
|
50
|
+
yggdrasil_core_version: 0.18.1
|
51
51
|
post_install_message:
|
52
52
|
rdoc_options: []
|
53
53
|
require_paths:
|