Skip to content

Commit 2e03c63

Browse files
committed
fix: replace name with domain
Signed-off-by: William Kim <[email protected]>
1 parent 4f75ba5 commit 2e03c63

File tree

7 files changed

+23
-31
lines changed

7 files changed

+23
-31
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,9 @@ OpenFeature::SDK.configure do |config|
5353
end
5454

5555
# Create a client
56-
client = OpenFeature::SDK.build_client(name: "my-app")
56+
client = OpenFeature::SDK.build_client()
5757
# Create a client for a different domain, this will use the provider assigned to that domain
58-
legacy_flag_client = OpenFeature::SDK.build_client(name: "Legacy", domain: "legacy_flags")
58+
legacy_flag_client = OpenFeature::SDK.build_client(domain: "legacy_flags")
5959

6060
# fetching boolean value feature flag
6161
bool_value = client.fetch_boolean_value(flag_key: 'boolean_flag', default_value: false)

lib/open_feature/sdk/api.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ def configure(&block)
4242
block.call(configuration)
4343
end
4444

45-
def build_client(name: nil, version: nil, domain: nil)
46-
client_options = Metadata.new(name: name, version: version, domain: domain).freeze
45+
def build_client(version: nil, domain: nil)
46+
client_options = Metadata.new(version: version, domain: domain).freeze
4747

4848
active_provider = provider(domain:).nil? ? Provider::NoOpProvider.new : provider(domain:)
4949

lib/open_feature/sdk/metadata.rb

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,18 +20,17 @@ module SDK
2020
# metadata_two = Metadata.new(name: 'name-for-metadata')
2121
# metadata_two == metadata # true - equality based on values
2222
class Metadata
23-
attr_reader :name, :version, :domain
23+
attr_reader :version, :domain
2424

25-
def initialize(name:, version: nil, domain: nil)
26-
@name = name
25+
def initialize(version: nil, domain: nil)
2726
@version = version
2827
@domain = domain
2928
end
3029

3130
def ==(other)
3231
raise ArgumentError("Expected comparison to be between Metadata object") unless other.is_a?(Metadata)
3332

34-
@name == other.name && @version == other.version
33+
@domain == other.domain && @version == other.version
3534
end
3635
end
3736
end

lib/open_feature/sdk/provider/in_memory_provider.rb

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,8 @@ module SDK
33
module Provider
44
# TODO: Add evaluation context support
55
class InMemoryProvider
6-
NAME = "In-memory Provider"
7-
86
def initialize(flags = {})
9-
@metadata = Metadata.new(name: NAME).freeze
7+
@metadata = Metadata.new.freeze
108
@flags = flags
119
end
1210

lib/open_feature/sdk/provider/no_op_provider.rb

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,11 @@ module Provider
2626
#
2727
class NoOpProvider
2828
REASON_NO_OP = "No-op"
29-
NAME = "No-op Provider"
3029

3130
attr_reader :metadata
3231

3332
def initialize
34-
@metadata = Metadata.new(name: NAME).freeze
33+
@metadata = Metadata.new.freeze
3534
end
3635

3736
def fetch_boolean_value(flag_key:, default_value:, evaluation_context: nil)

spec/open_feature/sdk/api_spec.rb

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,6 @@
4343
it do
4444
expect(api.provider.metadata).is_a?(OpenFeature::SDK::Metadata)
4545
end
46-
47-
it do
48-
expect(api.provider.metadata).to eq(OpenFeature::SDK::Metadata.new(name: OpenFeature::SDK::Provider::NoOpProvider::NAME))
49-
end
5046
end
5147

5248
context "with Requirement 1.1.5" do
@@ -55,11 +51,11 @@
5551
config.set_provider(OpenFeature::SDK::Provider::NoOpProvider.new)
5652
end
5753

58-
api.build_client(name: "requirement-1.1.5")
54+
api.build_client
5955
end
6056

6157
it "provide a function for creating a client which accepts the following options: * name (optional): A logical string identifier for the client." do
62-
expect(api).to respond_to(:build_client).with_keywords(:name, :version)
58+
expect(api).to respond_to(:build_client).with_keywords(:version)
6359
end
6460

6561
it do
@@ -76,11 +72,11 @@
7672
provider = OpenFeature::SDK::Provider::InMemoryProvider.new
7773

7874
api.configure do |config|
79-
config.set_provider(provider, domain: 'testing1')
75+
config.set_provider(provider, domain: "testing1")
8076
end
8177

82-
client = api.build_client(name: "with-domain", domain: "testing1")
83-
no_domain_client = api.build_client(name: "without-domain")
78+
client = api.build_client(domain: "testing1")
79+
no_domain_client = api.build_client
8480

8581
expect(client.provider).to be(provider)
8682
expect(no_domain_client.provider).to be_an_instance_of(OpenFeature::SDK::Provider::NoOpProvider)
@@ -95,7 +91,7 @@
9591
config.set_provider(provider)
9692
end
9793

98-
no_domain_client = api.build_client(name: "without-domain")
94+
no_domain_client = api.build_client
9995

10096
expect(no_domain_client.provider).to be(provider)
10197
end
@@ -105,7 +101,7 @@
105101
config.set_provider(OpenFeature::SDK::Provider::InMemoryProvider.new)
106102
end
107103

108-
domain_client = api.build_client(name: "with-domain", domain: "testing2")
104+
domain_client = api.build_client(domain: "testing2")
109105
# This domain was never given a provider, so it should default to the NoOpProvider
110106
expect(domain_client.provider).to be_an_instance_of(OpenFeature::SDK::Provider::NoOpProvider)
111107
end

spec/open_feature/sdk/client_spec.rb

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
RSpec.describe OpenFeature::SDK::Client do
88
subject(:client) { described_class.new(provider: provider, client_options: client_metadata) }
99
let(:provider) { OpenFeature::SDK::Provider::NoOpProvider.new }
10-
let(:client_metadata) { OpenFeature::SDK::Metadata.new(name: name) }
11-
let(:name) { "my-openfeature-client" }
10+
let(:client_metadata) { OpenFeature::SDK::Metadata.new(domain: domain) }
11+
let(:domain) { "my-openfeature-client" }
1212

1313
context "Requirement 1.2.1" do
1414
before do
@@ -24,10 +24,10 @@
2424
end
2525

2626
context "Requirement 1.2.2" do
27-
it "MUST define a metadata member or accessor, containing an immutable name field or accessor of type string, which corresponds to the name value supplied during client creation." do
27+
it "MUST define a metadata member or accessor, containing an immutable domain field or accessor of type string, which corresponds to the domain value supplied during client creation." do
2828
expect(client).to respond_to(:metadata)
29-
expect(client.metadata).to respond_to(:name)
30-
expect(client.metadata.name).to eq(name)
29+
expect(client.metadata).to respond_to(:domain)
30+
expect(client.metadata.domain).to eq(domain)
3131
end
3232
end
3333

@@ -195,14 +195,14 @@
195195

196196
it do
197197
expect(client.fetch_object_details(flag_key: flag_key,
198-
default_value: {name: "some-name"})).is_a?(OpenFeature::SDK::Provider::ResolutionDetails)
198+
default_value: {domain: "some-domain"})).is_a?(OpenFeature::SDK::Provider::ResolutionDetails)
199199
end
200200
end
201201

202202
context "Requirement 1.4.2" do
203203
it "The evaluation details structure's value field MUST contain the evaluated flag value" do
204204
expect(client.fetch_object_details(flag_key: flag_key,
205-
default_value: {name: "some-name"}).value).is_a?(String)
205+
default_value: {domain: "some-domain"}).value).is_a?(String)
206206
end
207207
end
208208

0 commit comments

Comments
 (0)