yggdrasil-engine 0.0.7-arm-linux → 0.0.8.beta.2-arm-linux
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.so +0 -0
- data/lib/yggdrasil_engine.rb +35 -21
- data/spec/yggdrasil_engine_spec.rb +10 -0
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0f6e9ccb0e127fa94271693963d9389d603cdb467fd9f4dc3589fb7f6c233fa3
|
4
|
+
data.tar.gz: 9b25efe54879cb52a9710f62473e039fa16452fad8018cc727f1f7109baf6e15
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 21400d146382b04d01b5c199fe2d40d9ac7107d38220b4aecb2e3465af8fe3cab3f22afd022ccc38721719d79f360087374b40341ac4e6044056564ac2693ef0
|
7
|
+
data.tar.gz: f76128287163b70cdb8c57c83a75b099f01abefd7377a10bb514a1f4007f21cb8452cc83e14074677cf60bbbee5714b6160a9d5e4178840ebdc3c4739af3ad06
|
Binary file
|
data/lib/yggdrasil_engine.rb
CHANGED
@@ -10,29 +10,34 @@ def platform_specific_lib
|
|
10
10
|
os = RbConfig::CONFIG['host_os']
|
11
11
|
cpu = RbConfig::CONFIG['host_cpu']
|
12
12
|
|
13
|
-
extension = case os
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
13
|
+
extension, prefix = case os
|
14
|
+
when /darwin|mac os/
|
15
|
+
['dylib', 'lib']
|
16
|
+
when /linux/
|
17
|
+
['so', 'lib']
|
18
|
+
when /mswin|msys|mingw|cygwin|bccwin|wince|emc/
|
19
|
+
['dll', '']
|
20
|
+
else
|
21
|
+
raise "unsupported platform #{os}"
|
22
|
+
end
|
23
23
|
|
24
24
|
arch_suffix = case cpu
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
25
|
+
when /x86_64/
|
26
|
+
'x86_64'
|
27
|
+
when /arm|aarch64/
|
28
|
+
'arm64'
|
29
|
+
else
|
30
|
+
raise "unsupported architecture #{cpu}"
|
31
|
+
end
|
32
|
+
|
33
|
+
lib_type_suffix = if os =~ /linux/
|
34
|
+
musl = system("ldd /bin/sh | grep -q musl") # Check if musl is in use
|
35
|
+
musl ? "-musl" : ""
|
36
|
+
else
|
37
|
+
""
|
38
|
+
end
|
39
|
+
|
40
|
+
"#{prefix}yggdrasilffi_#{arch_suffix}#{lib_type_suffix}.#{extension}"
|
36
41
|
end
|
37
42
|
|
38
43
|
def to_variant(raw_variant)
|
@@ -61,6 +66,8 @@ class YggdrasilEngine
|
|
61
66
|
attach_function :count_toggle, %i[pointer string bool], :void
|
62
67
|
attach_function :count_variant, %i[pointer string string], :void
|
63
68
|
|
69
|
+
attach_function :list_known_toggles, [:pointer], :pointer
|
70
|
+
|
64
71
|
def initialize
|
65
72
|
@engine = YggdrasilEngine.new_engine
|
66
73
|
@custom_strategy_handler = CustomStrategyHandler.new
|
@@ -125,6 +132,13 @@ class YggdrasilEngine
|
|
125
132
|
metrics[:value]
|
126
133
|
end
|
127
134
|
|
135
|
+
def list_known_toggles
|
136
|
+
response_ptr = YggdrasilEngine.list_known_toggles(@engine)
|
137
|
+
response_json = response_ptr.read_string
|
138
|
+
YggdrasilEngine.free_response(response_ptr)
|
139
|
+
JSON.parse(response_json, symbolize_names: true)
|
140
|
+
end
|
141
|
+
|
128
142
|
def register_custom_strategies(strategies)
|
129
143
|
@custom_strategy_handler.register_custom_strategies(strategies)
|
130
144
|
end
|
@@ -93,6 +93,16 @@ RSpec.describe YggdrasilEngine do
|
|
93
93
|
|
94
94
|
expect(metric[:variants][:disabled]).to eq(1)
|
95
95
|
end
|
96
|
+
|
97
|
+
it 'should list all the features that were loaded' do
|
98
|
+
suite_path = File.join('../client-specification/specifications', '01-simple-examples.json')
|
99
|
+
suite_data = JSON.parse(File.read(suite_path))
|
100
|
+
|
101
|
+
yggdrasil_engine.take_state(suite_data['state'].to_json)
|
102
|
+
|
103
|
+
toggles = yggdrasil_engine.list_known_toggles()
|
104
|
+
expect(toggles.length).to eq(3)
|
105
|
+
end
|
96
106
|
end
|
97
107
|
end
|
98
108
|
|
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: 0.0.
|
4
|
+
version: 0.0.8.beta.2
|
5
5
|
platform: arm-linux
|
6
6
|
authors:
|
7
7
|
- Unleash
|
@@ -39,7 +39,8 @@ files:
|
|
39
39
|
homepage: http://github.com/username/my_gem
|
40
40
|
licenses:
|
41
41
|
- MIT
|
42
|
-
metadata:
|
42
|
+
metadata:
|
43
|
+
yggdrasil_core_version: 0.14.0
|
43
44
|
post_install_message:
|
44
45
|
rdoc_options: []
|
45
46
|
require_paths:
|
@@ -51,9 +52,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
51
52
|
version: '0'
|
52
53
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
53
54
|
requirements:
|
54
|
-
- - "
|
55
|
+
- - ">"
|
55
56
|
- !ruby/object:Gem::Version
|
56
|
-
version:
|
57
|
+
version: 1.3.1
|
57
58
|
requirements: []
|
58
59
|
rubygems_version: 3.3.5
|
59
60
|
signing_key:
|