diff --git a/launchdarkly-openfeature-server-sdk.gemspec b/launchdarkly-openfeature-server-sdk.gemspec index 96d60cb..21e19df 100644 --- a/launchdarkly-openfeature-server-sdk.gemspec +++ b/launchdarkly-openfeature-server-sdk.gemspec @@ -28,7 +28,7 @@ Gem::Specification.new do |spec| spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) } spec.require_paths = ["lib"] - spec.add_runtime_dependency "launchdarkly-server-sdk", "~> 8.4" + spec.add_runtime_dependency "launchdarkly-server-sdk", "~> 8.15" spec.add_runtime_dependency "openfeature-sdk", "~> 0.6.1" # For more information and examples about making a new gem, check out our diff --git a/lib/ldclient-openfeature/provider.rb b/lib/ldclient-openfeature/provider.rb index 1bcceac..eb091cd 100644 --- a/lib/ldclient-openfeature/provider.rb +++ b/lib/ldclient-openfeature/provider.rb @@ -27,13 +27,16 @@ class Provider NUMERIC_TYPES = %i[integer float number].freeze private_constant :NUMERIC_TYPES + WRAPPER_NAME = "open-feature-ruby-server" + private_constant :WRAPPER_NAME + # # @param sdk_key [String] # @param config [LaunchDarkly::Config] # @param wait_for_seconds [Float] # def initialize(sdk_key, config = LaunchDarkly::Config.default, wait_for_seconds = 5) - @client = LaunchDarkly::LDClient.new(sdk_key, config, wait_for_seconds) + @client = LaunchDarkly::LDClient.new(sdk_key, config.with_wrapper_information(WRAPPER_NAME, VERSION), wait_for_seconds) @logger = config.logger @context_converter = Impl::EvaluationContextConverter.new(config.logger) diff --git a/spec/provider_spec.rb b/spec/provider_spec.rb index 3438fc6..112f4f4 100644 --- a/spec/provider_spec.rb +++ b/spec/provider_spec.rb @@ -63,6 +63,24 @@ expect(provider.client).to have_received(:close) end + it "reports itself as the wrapper to LaunchDarkly" do + client = instance_double( + LaunchDarkly::LDClient, + data_source_status_provider: double(add_listener: nil), + flag_tracker: double(add_listener: nil) + ) + allow(LaunchDarkly::LDClient).to receive(:new).and_return(client) + + described_class.new("example-key", config) + + expect(LaunchDarkly::LDClient).to have_received(:new).with( + "example-key", + having_attributes(wrapper_name: "open-feature-ruby-server", wrapper_version: LaunchDarkly::OpenFeature::VERSION), + 5 + ) + expect(config.wrapper_name).to be_nil + end + it "not providing context returns error" do resolution_details = provider.fetch_boolean_value(flag_key: "flag-key", default_value: true)