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 +4 -4
 - data/lib/custom_strategy.rb +23 -1
 - data/lib/libyggdrasilffi_arm64-musl.so +0 -0
 - data/lib/libyggdrasilffi_arm64.dylib +0 -0
 - data/lib/libyggdrasilffi_arm64.so +0 -0
 - data/lib/libyggdrasilffi_x86_64-musl.so +0 -0
 - data/lib/libyggdrasilffi_x86_64.dylib +0 -0
 - data/lib/libyggdrasilffi_x86_64.so +0 -0
 - data/lib/yggdrasil_engine.rb +1 -2
 - data/lib/yggdrasilffi_arm64.dll +0 -0
 - data/lib/yggdrasilffi_x86_64.dll +0 -0
 - data/spec/yggdrasil_engine_spec.rb +9 -0
 - metadata +4 -7
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA256:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: '09d573d68094f3948453f7b8aa945959f7842e1c24a5877c00bc56c2ff7193c2'
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: e7ed7ccdb587b30cad25461d8d18938ea764c77ae3bb3989ed6c72e6257af7e6
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: c0146fd4c206227e4db0fb18e0ba71572682ca8265e61cee695976df513697099d503d5ca4e0f8391b9750d20603a737ceebecbe6e375612a6a86ec84aba2160
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 22fb0fde41c575eb9fd9280481fb2a2b9c69eceb0fd0633ba8ec0c7cb9c66990aac5326841193e7fdbf6318e30ac5a28dcd6331d44d976e9d5dd0ba970e40550
         
     | 
    
        data/lib/custom_strategy.rb
    CHANGED
    
    | 
         @@ -18,7 +18,9 @@ class CustomStrategyHandler 
     | 
|
| 
       18 
18 
     | 
    
         
             
                custom_strategies = {}
         
     | 
| 
       19 
19 
     | 
    
         
             
                parsed_json = JSON.parse(json_str)
         
     | 
| 
       20 
20 
     | 
    
         | 
| 
       21 
     | 
    
         
            -
                 
     | 
| 
      
 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 
     | 
    
        data/lib/yggdrasil_engine.rb
    CHANGED
    
    | 
         @@ -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. 
     | 
| 
      
 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
         
     | 
    
        data/lib/yggdrasilffi_arm64.dll
    CHANGED
    
    | 
         Binary file 
     | 
    
        data/lib/yggdrasilffi_x86_64.dll
    CHANGED
    
    | 
         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. 
     | 
| 
      
 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. 
     | 
| 
       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 
     | 
| 
       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: []
         
     |