Class: OpenFeature::Flagd::Provider::Client
- Inherits:
-
Object
- Object
- OpenFeature::Flagd::Provider::Client
- Defined in:
- lib/openfeature/flagd/provider/client.rb
Overview
Client represents a wrapper for the GRPC stub that allows for resolution of boolean, string, number, and object values. The implementation follows the details specified in openfeature.dev/docs/specification/sections/providers
The Client provides the following methods and attributes:
-
metadata
- Returns the associated provider metadata with the name -
fetch_boolean_value(flag_key:, default_value:, evaluation_context: nil)
manner;client.fetch_boolean(flag_key: 'boolean-flag', default_value: false)
-
fetch_integer_value(flag_key:, default_value:, evaluation_context: nil)
manner;client.fetch_integer_value(flag_key: 'integer-flag', default_value: 2)
-
fetch_float_value(flag_key:, default_value:, evaluation_context: nil)
manner;client.fetch_float_value(flag_key: 'float-flag', default_value: 2.0)
-
fetch_string_value(flag_key:, default_value:, evaluation_context: nil)
manner;client.fetch_string_value(flag_key: 'string-flag', default_value: 'some-default-value')
-
fetch_object_value(flag_key:, default_value:, evaluation_context: nil)
manner;client.fetch_object_value(flag_key: 'flag', default_value: { default_value: 'value'})
Constant Summary collapse
- PROVIDER_NAME =
"flagd Provider"
Instance Attribute Summary collapse
-
#metadata ⇒ Object
readonly
Returns the value of attribute metadata.
Instance Method Summary collapse
- #fetch_boolean_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
- #fetch_float_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
- #fetch_integer_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
- #fetch_number_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
- #fetch_object_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
- #fetch_string_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
-
#initialize(configuration: nil) ⇒ Client
constructor
A new instance of Client.
Constructor Details
#initialize(configuration: nil) ⇒ Client
Returns a new instance of Client.
39 40 41 42 |
# File 'lib/openfeature/flagd/provider/client.rb', line 39 def initialize(configuration: nil) @metadata = OpenFeature::SDK::Provider::ProviderMetadata.new(name: PROVIDER_NAME) @grpc_client = grpc_client(configuration) end |
Instance Attribute Details
#metadata ⇒ Object (readonly)
Returns the value of attribute metadata.
37 38 39 |
# File 'lib/openfeature/flagd/provider/client.rb', line 37 def @metadata end |
Instance Method Details
#fetch_boolean_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
44 45 46 47 |
# File 'lib/openfeature/flagd/provider/client.rb', line 44 def fetch_boolean_value(flag_key:, default_value:, evaluation_context: nil) request = Grpc::Evaluation::ResolveBooleanRequest.new(flag_key: flag_key, context: prepare_evaluation_context(evaluation_context)) process_request(default_value) { @grpc_client.resolve_boolean(request) } end |
#fetch_float_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
63 64 65 66 |
# File 'lib/openfeature/flagd/provider/client.rb', line 63 def fetch_float_value(flag_key:, default_value:, evaluation_context: nil) request = Grpc::Evaluation::ResolveFloatRequest.new(flag_key: flag_key, context: prepare_evaluation_context(evaluation_context)) process_request(default_value) { @grpc_client.resolve_float(request) } end |
#fetch_integer_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
58 59 60 61 |
# File 'lib/openfeature/flagd/provider/client.rb', line 58 def fetch_integer_value(flag_key:, default_value:, evaluation_context: nil) request = Grpc::Evaluation::ResolveIntRequest.new(flag_key: flag_key, context: prepare_evaluation_context(evaluation_context)) process_request(default_value) { @grpc_client.resolve_int(request) } end |
#fetch_number_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
49 50 51 52 53 54 55 56 |
# File 'lib/openfeature/flagd/provider/client.rb', line 49 def fetch_number_value(flag_key:, default_value:, evaluation_context: nil) case default_value when Integer fetch_integer_value(flag_key: flag_key, default_value: default_value, evaluation_context: evaluation_context) when Float fetch_float_value(flag_key: flag_key, default_value: default_value, evaluation_context: evaluation_context) end end |
#fetch_object_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
73 74 75 76 |
# File 'lib/openfeature/flagd/provider/client.rb', line 73 def fetch_object_value(flag_key:, default_value:, evaluation_context: nil) request = Grpc::Evaluation::ResolveObjectRequest.new(flag_key: flag_key, context: prepare_evaluation_context(evaluation_context)) process_request(default_value) { @grpc_client.resolve_object(request) } end |
#fetch_string_value(flag_key:, default_value:, evaluation_context: nil) ⇒ Object
68 69 70 71 |
# File 'lib/openfeature/flagd/provider/client.rb', line 68 def fetch_string_value(flag_key:, default_value:, evaluation_context: nil) request = Grpc::Evaluation::ResolveStringRequest.new(flag_key: flag_key, context: prepare_evaluation_context(evaluation_context)) process_request(default_value) { @grpc_client.resolve_string(request) } end |