yggdrasil-engine 1.0.1-arm64-mingw32 → 1.0.3-arm64-mingw32

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: 1db45976582c31d27096a50cb1da98d498fdeb0a6f287b517881cf72914897f1
4
- data.tar.gz: '048c6c9668afff3609bb67bd980b4e6ba4b11e60d9fbc0bcb44e77e852f4bf17'
3
+ metadata.gz: 8ed2bbbc994767f8d78d4100bcf905e07b0fabf837d77d1cec62bab43c7ded1f
4
+ data.tar.gz: e9ddffd5b0f897367d847082e0e3e8eafd414b833af9b69db61c5f1e4f4892df
5
5
  SHA512:
6
- metadata.gz: 6516b863833a3496a9f6d7f1b65a2b306af98b808072065c7a610a9138f93b03b9a9fbcb44a6318db2437c8997d927e23ce878200945b2b5132879404e340588
7
- data.tar.gz: e61f58412c7a4a854d681fbd5bed318ad01cf4d0274a0f7e5af0364f6775e39b06c6ae48d211225d0d0952f5512fd0ac4cb06b88b335568fec40f45fce60f4b0
6
+ metadata.gz: a4f05e48258f08fcc5298db215ebe8bf61f6194728af8703680c96dbb7977605a40457412a744c17b7cc89223ea45278bf1bd006aa416eebab2cc42e2b4c2753
7
+ data.tar.gz: a851178ec869163e948cc0c93b03312c2dc5dbef5d43e54b4dd42082eeb37d6857d8e95dad90bda5e56ba9fc523e747e997b532f38e8fda1cfc0ae923ea83c44
@@ -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
@@ -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,11 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yggdrasil-engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.3
5
5
  platform: arm64-mingw32
6
6
  authors:
7
7
  - Unleash
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2023-06-28 00:00:00.000000000 Z
@@ -40,8 +40,8 @@ homepage: http://github.com/username/my_gem
40
40
  licenses:
41
41
  - MIT
42
42
  metadata:
43
- yggdrasil_core_version: 0.14.2
44
- post_install_message:
43
+ yggdrasil_core_version: 0.17.0
44
+ post_install_message:
45
45
  rdoc_options: []
46
46
  require_paths:
47
47
  - lib
@@ -56,8 +56,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
56
56
  - !ruby/object:Gem::Version
57
57
  version: '0'
58
58
  requirements: []
59
- rubygems_version: 3.3.5
60
- signing_key:
59
+ rubygems_version: 3.4.20
60
+ signing_key:
61
61
  specification_version: 4
62
62
  summary: Unleash engine for evaluating feature toggles
63
63
  test_files: []