flipt_client 0.3.0 → 0.4.0
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/ext/darwin_arm64/libfliptengine.dylib +0 -0
- data/lib/ext/darwin_arm64/libfliptengine.rlib +0 -0
- data/lib/ext/linux_arm64/libfliptengine.rlib +0 -0
- data/lib/ext/linux_arm64/libfliptengine.so +0 -0
- data/lib/ext/linux_x86_64/flipt_engine.h +8 -1
- data/lib/ext/linux_x86_64/libfliptengine.rlib +0 -0
- data/lib/ext/linux_x86_64/libfliptengine.so +0 -0
- data/lib/flipt_client/version.rb +1 -1
- data/lib/flipt_client.rb +11 -17
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '09abc2939bc09022a7228b96b686889ea5074be8dab844f7e68c2e5691d6ba5d'
|
4
|
+
data.tar.gz: 2c2f983efd9e8ae01e78688662cfe692c91e80f0d2099b3412906a8e624cbc1c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4afcbea261f779d43e374150413bade8e1917f32259e06419bb35b376fe344a59aa7bcacaa443457391da0d165236a49c0d5455e10519bda257d795e3d558a48
|
7
|
+
data.tar.gz: ea373fa9331e6eecd4ca7ed53689c222b99a5a76d7b9cc1907fcf52fd6460cd186f0567d9ebf1aa9edc096ec4272c0dcceb683b4103a4a10d41218fedda6248e
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -8,7 +8,7 @@
|
|
8
8
|
*
|
9
9
|
* This function will initialize an Engine and return a pointer back to the caller.
|
10
10
|
*/
|
11
|
-
void *initialize_engine(const char *
|
11
|
+
void *initialize_engine(const char *namespace_, const char *opts);
|
12
12
|
|
13
13
|
/**
|
14
14
|
* # Safety
|
@@ -31,6 +31,13 @@ const char *evaluate_boolean(void *engine_ptr, const char *evaluation_request);
|
|
31
31
|
*/
|
32
32
|
const char *evaluate_batch(void *engine_ptr, const char *batch_evaluation_request);
|
33
33
|
|
34
|
+
/**
|
35
|
+
* # Safety
|
36
|
+
*
|
37
|
+
* This function will take in a pointer to the engine and return a list of flags for the given namespace.
|
38
|
+
*/
|
39
|
+
const char *list_flags(void *engine_ptr);
|
40
|
+
|
34
41
|
/**
|
35
42
|
* # Safety
|
36
43
|
*
|
Binary file
|
Binary file
|
data/lib/flipt_client/version.rb
CHANGED
data/lib/flipt_client.rb
CHANGED
@@ -28,8 +28,8 @@ module Flipt
|
|
28
28
|
|
29
29
|
ffi_lib File.expand_path(libfile, __dir__)
|
30
30
|
|
31
|
-
# void *initialize_engine(const char *
|
32
|
-
attach_function :initialize_engine, %i[
|
31
|
+
# void *initialize_engine(const char *namespace, const char *opts);
|
32
|
+
attach_function :initialize_engine, %i[string string], :pointer
|
33
33
|
# void destroy_engine(void *engine_ptr);
|
34
34
|
attach_function :destroy_engine, [:pointer], :void
|
35
35
|
# const char *evaluate_variant(void *engine_ptr, const char *evaluation_request);
|
@@ -38,6 +38,8 @@ module Flipt
|
|
38
38
|
attach_function :evaluate_boolean, %i[pointer string], :string
|
39
39
|
# const char *evaluate_batch(void *engine_ptr, const char *batch_evaluation_request);
|
40
40
|
attach_function :evaluate_batch, %i[pointer string], :string
|
41
|
+
# const char *list_flags(void *engine_ptr);
|
42
|
+
attach_function :list_flags, [:pointer], :string
|
41
43
|
|
42
44
|
# Create a new Flipt client
|
43
45
|
#
|
@@ -56,13 +58,7 @@ module Flipt
|
|
56
58
|
|
57
59
|
opts[:authentication] = authentication.strategy
|
58
60
|
|
59
|
-
|
60
|
-
ns = FFI::MemoryPointer.new(:pointer, namespace_list.size)
|
61
|
-
namespace_list.each_with_index do |namespace, i|
|
62
|
-
ns[i].put_pointer(0, FFI::MemoryPointer.from_string(namespace))
|
63
|
-
end
|
64
|
-
|
65
|
-
@engine = self.class.initialize_engine(ns, opts.to_json)
|
61
|
+
@engine = self.class.initialize_engine(namespace, opts.to_json)
|
66
62
|
ObjectSpace.define_finalizer(self, self.class.finalize(@engine))
|
67
63
|
end
|
68
64
|
|
@@ -75,9 +71,7 @@ module Flipt
|
|
75
71
|
# @param evaluation_request [Hash] evaluation request
|
76
72
|
# @option evaluation_request [String] :entity_id entity id
|
77
73
|
# @option evaluation_request [String] :flag_key flag key
|
78
|
-
# @option evaluation_request [String] :namespace_key override namespace key
|
79
74
|
def evaluate_variant(evaluation_request = {})
|
80
|
-
evaluation_request[:namespace_key] = @namespace
|
81
75
|
validate_evaluation_request(evaluation_request)
|
82
76
|
resp = self.class.evaluate_variant(@engine, evaluation_request.to_json)
|
83
77
|
JSON.parse(resp)
|
@@ -88,9 +82,7 @@ module Flipt
|
|
88
82
|
# @param evaluation_request [Hash] evaluation request
|
89
83
|
# @option evaluation_request [String] :entity_id entity id
|
90
84
|
# @option evaluation_request [String] :flag_key flag key
|
91
|
-
# @option evaluation_request [String] :namespace_key override namespace key
|
92
85
|
def evaluate_boolean(evaluation_request = {})
|
93
|
-
evaluation_request[:namespace_key] = @namespace
|
94
86
|
validate_evaluation_request(evaluation_request)
|
95
87
|
resp = self.class.evaluate_boolean(@engine, evaluation_request.to_json)
|
96
88
|
JSON.parse(resp)
|
@@ -101,10 +93,8 @@ module Flipt
|
|
101
93
|
# @param batch_evaluation_request [Array<Hash>] batch evaluation request
|
102
94
|
# - :entity_id [String] entity id
|
103
95
|
# - :flag_key [String] flag key
|
104
|
-
# - :namespace_key [String] override namespace key
|
105
96
|
def evaluate_batch(batch_evaluation_request = [])
|
106
97
|
for request in batch_evaluation_request do
|
107
|
-
request[:namespace_key] = @namespace
|
108
98
|
validate_evaluation_request(request)
|
109
99
|
end
|
110
100
|
|
@@ -112,12 +102,16 @@ module Flipt
|
|
112
102
|
JSON.parse(resp)
|
113
103
|
end
|
114
104
|
|
105
|
+
# List all flags in the namespace
|
106
|
+
def list_flags
|
107
|
+
resp = self.class.list_flags(@engine)
|
108
|
+
JSON.parse(resp)
|
109
|
+
end
|
110
|
+
|
115
111
|
private
|
116
112
|
def validate_evaluation_request(evaluation_request)
|
117
113
|
if evaluation_request[:entity_id].nil? || evaluation_request[:entity_id].empty?
|
118
114
|
raise ArgumentError, 'entity_id is required'
|
119
|
-
elsif evaluation_request[:namespace_key].nil? || evaluation_request[:namespace_key].empty?
|
120
|
-
raise ArgumentError, 'namespace_key is required'
|
121
115
|
elsif evaluation_request[:flag_key].nil? || evaluation_request[:flag_key].empty?
|
122
116
|
raise ArgumentError, 'flag_key is required'
|
123
117
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flipt_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Flipt Devs
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Flipt Client Evaluation SDK
|
14
14
|
email:
|