yggdrasil-engine 1.0.2-aarch64-linux → 1.0.3-aarch64-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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 35d21d877bc2dcfaf3dd61982515c4f408387b71e4070a2b7c0d3b0bacfbe3d6
4
- data.tar.gz: fe0ab392ed83805a0730f16b41e9ed9629dcc98c9aef90d302ce94ebe0cbc3f4
3
+ metadata.gz: a44aea0e9bf1f03ce9a55c46c334677c0e8a8a8371db959487dae96f819efcdd
4
+ data.tar.gz: 6e4e741bed8938821e85c310a345ca1e2413b675c128795fa20467a275d816ee
5
5
  SHA512:
6
- metadata.gz: a997cfa4465921d4687d2915f6e9fc7185c66e435a08e2207e99d6de466a9ff320621fa1e275dd471c34437d68a6c8026914ccaec49443d467b364ab640cec33
7
- data.tar.gz: 5ccedc8c4012d5d0b5ba25c20f0de3bededec642a913382400d89e72351987a1af132868b41254350650a71209fffdb5ebf21546af1e25b116c643870177fd01
6
+ metadata.gz: 566b4fc5c89bd9e6171d4d4d5ad5e613c1fe2e01739c6652dc557e2c7ec6df7fdc8ce86ccde010688ecaca59acbcf011593ea6a8b8fc820a5e84e2e92fa6ca78
7
+ data.tar.gz: a49cbaf3a0719e6a4349db194bfc8917ffe0dde1ac220ef67f477bdc8d0efdf266dccad767d61ddd037d43fab16bcd70a9efb695e9dae203513968d1a09e0acb
@@ -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
@@ -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
@@ -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,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.2
4
+ version: 1.0.3
5
5
  platform: aarch64-linux
6
6
  authors:
7
7
  - Unleash
@@ -40,7 +40,7 @@ homepage: http://github.com/username/my_gem
40
40
  licenses:
41
41
  - MIT
42
42
  metadata:
43
- yggdrasil_core_version: 0.16.0
43
+ yggdrasil_core_version: 0.17.0
44
44
  post_install_message:
45
45
  rdoc_options: []
46
46
  require_paths: