yggdrasil-engine 1.0.2-universal-java-21 → 1.0.3-universal-java-21

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bde8a39419aa1987318b874b229cc0f93b0c4a9ffdb29f7e05a03369520ebb45
4
- data.tar.gz: 7805e078de92c50233ccf897d5deb934fcf3c4589df16e8e1b83c148e55a19f3
3
+ metadata.gz: '09d573d68094f3948453f7b8aa945959f7842e1c24a5877c00bc56c2ff7193c2'
4
+ data.tar.gz: e7ed7ccdb587b30cad25461d8d18938ea764c77ae3bb3989ed6c72e6257af7e6
5
5
  SHA512:
6
- metadata.gz: d6bc40a2fe9957e7eb28092dea86163aa3f5d9de8fa4633017102a206f05331e919eba960b20d3e6d0b4e798e7dc8af3947f01584abc7836ec9431aa49a45413
7
- data.tar.gz: 2fe8d8a6e3db54377277c1423828b8b24f5395de1b8cbb03c8f4b6ddfb7670ce2747986aeff2a238f3e6c0481f180bb5bdac8f61e754c4d005426ea6d8814894
6
+ metadata.gz: c0146fd4c206227e4db0fb18e0ba71572682ca8265e61cee695976df513697099d503d5ca4e0f8391b9750d20603a737ceebecbe6e375612a6a86ec84aba2160
7
+ data.tar.gz: 22fb0fde41c575eb9fd9280481fb2a2b9c69eceb0fd0633ba8ec0c7cb9c66990aac5326841193e7fdbf6318e30ac5a28dcd6331d44d976e9d5dd0ba970e40550
@@ -18,7 +18,9 @@ class CustomStrategyHandler
18
18
  custom_strategies = {}
19
19
  parsed_json = JSON.parse(json_str)
20
20
 
21
- parsed_json["features"].each do |feature|
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
@@ -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.hydrate_data(@engine, toggles)
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
Binary file
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.2
4
+ version: 1.0.3
5
5
  platform: universal-java-21
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.16.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.26
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: []