yggdrasil-engine 0.0.6-universal-java-17 → 0.0.8.beta.1-universal-java-17

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f07895ad8e02f70ff2ee7fe4e9ef9d1bc85c92c02e72112d7a9450378dd18bf4
4
- data.tar.gz: 970302a17538e5748147bc29cfe6d12da92ba22d27a1e1cacb5464eb852cdcc7
3
+ metadata.gz: 40d11674b33df46e0ddd882009125ae5dbc0f984b252712c6715d5522d8d2cba
4
+ data.tar.gz: 077ba65400cd9bedb36581e23e8dd7f795ae7a8279522290f00c0897db806903
5
5
  SHA512:
6
- metadata.gz: 8806d8157812bd2e6722e4cd302b2ff631e6d9c8ec55d305fbf2c8819f95588705e7a173018e8e4e3b52ec6bb6eee59b1b5d2f71d958f011c9151f976867d983
7
- data.tar.gz: 9c17e7a68caaff4c953e487b38ca071959cf24157109f3fda3c2e4c4c8be4705ff7b85d7b392d4142a8444141a2969f2188ef20812b95c5e74fa55282997eea4
6
+ metadata.gz: 7a330e4760d8646aba1c49e6db08071f8b6e3289dda4bbd71832173f4f98f226ff2fd836a5ec550ef8b5a15d472f449db46dfc2e0c9d65fd2ba18d5a15b336ab
7
+ data.tar.gz: a890eaae83a3f2aec2874e4b7ea8a8627f824d23206db90c525a39a9154641a39dff49cfacadf27cdcc4ad920c7782abd203f6c3ed7b0d0a1d123a58770d9b37
@@ -0,0 +1 @@
1
+ Not Found
@@ -0,0 +1 @@
1
+ Not Found
Binary file
Binary file
@@ -0,0 +1 @@
1
+ Not Found
Binary file
@@ -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
- when /darwin|mac os/
15
- 'dylib'
16
- when /linux/
17
- 'so'
18
- when /mswin|msys|mingw|cygwin|bccwin|wince|emc/
19
- 'dll'
20
- else
21
- raise "unsupported platform #{os}"
22
- end
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
- when /x86_64/
26
- 'x86_64'
27
- when /arm/
28
- 'arm64'
29
- when /aarch64/
30
- 'aarch64'
31
- else
32
- raise "unsupported architecture #{cpu}"
33
- end
34
-
35
- "libyggdrasilffi_#{arch_suffix}.#{extension}"
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
@@ -0,0 +1 @@
1
+ Not Found
@@ -0,0 +1 @@
1
+ Not Found
@@ -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.6
4
+ version: 0.0.8.beta.1
5
5
  platform: universal-java-17
6
6
  authors:
7
7
  - Unleash
@@ -15,7 +15,7 @@ dependencies:
15
15
  requirements:
16
16
  - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: 1.15.5
18
+ version: 1.16.3
19
19
  name: ffi
20
20
  type: :runtime
21
21
  prerelease: false
@@ -23,7 +23,7 @@ dependencies:
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.15.5
26
+ version: 1.16.3
27
27
  description: "..."
28
28
  email: liquidwicked64@gmail.com
29
29
  executables: []
@@ -32,19 +32,22 @@ extra_rdoc_files: []
32
32
  files:
33
33
  - README.md
34
34
  - lib/custom_strategy.rb
35
- - lib/libyggdrasilffi_aarch64.so
35
+ - lib/libyggdrasilffi_arm64-musl.so
36
+ - lib/libyggdrasilffi_arm64.dll
36
37
  - lib/libyggdrasilffi_arm64.dylib
37
38
  - lib/libyggdrasilffi_arm64.so
38
- - lib/libyggdrasilffi_x86_64.dll
39
- - lib/libyggdrasilffi_x86_64.dylib
39
+ - lib/libyggdrasilffi_x86_64-linux-musl.so
40
40
  - lib/libyggdrasilffi_x86_64.so
41
41
  - lib/yggdrasil_engine.rb
42
+ - lib/yggdrasilffi_x86_64.dll
43
+ - lib/yggdrasilffi_x86_64.dylib
42
44
  - spec/custom_strategy_spec.rb
43
45
  - spec/yggdrasil_engine_spec.rb
44
46
  homepage: http://github.com/username/my_gem
45
47
  licenses:
46
48
  - MIT
47
- metadata: {}
49
+ metadata:
50
+ yggdrasil_core_version: 0.14.0
48
51
  post_install_message:
49
52
  rdoc_options: []
50
53
  require_paths:
@@ -56,9 +59,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
56
59
  version: '0'
57
60
  required_rubygems_version: !ruby/object:Gem::Requirement
58
61
  requirements:
59
- - - ">="
62
+ - - ">"
60
63
  - !ruby/object:Gem::Version
61
- version: '0'
64
+ version: 1.3.1
62
65
  requirements: []
63
66
  rubygems_version: 3.3.26
64
67
  signing_key:
Binary file
Binary file
Binary file