Skip to content

Commit 9135b96

Browse files
Use feature name instead of id for analytics (#17)
1 parent 4636e18 commit 9135b96

File tree

3 files changed

+11
-11
lines changed

3 files changed

+11
-11
lines changed

lib/flagsmith/sdk/analytics_processor.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ def flush
3131
@last_flushed = Time.now
3232
end
3333

34-
def track_feature(feature_id)
35-
@analytics_data[feature_id] = @analytics_data.fetch(feature_id, 0) + 1
34+
def track_feature(feature_name)
35+
@analytics_data[feature_name] = @analytics_data.fetch(feature_name, 0) + 1
3636
flush if (Time.now - @last_flushed) > TIMER * 1000
3737
end
3838
end

lib/flagsmith/sdk/models/flags.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ def feature_value(feature_name)
122122
def get_flag(feature_name)
123123
key = Flagsmith::Flags::Collection.normalize_key(feature_name)
124124
flag = flags.fetch(key)
125-
@analytics_processor.track_feature(flag.feature_id) if @analytics_processor && flag.feature_id
125+
@analytics_processor.track_feature(flag.feature_name) if @analytics_processor && flag.feature_id
126126
flag
127127
rescue KeyError
128128
return @default_flag_handler.call(feature_name) if @default_flag_handler

spec/sdk/analytics_processor_spec.rb

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,25 +19,25 @@
1919
end
2020

2121
it 'test_analytics_processor_track_feature_updates_analytics_data' do
22-
subject.track_feature(1)
23-
expect(subject.analytics_data[1]).to eq(1)
22+
subject.track_feature("my_feature")
23+
expect(subject.analytics_data["my_feature"]).to eq(1)
2424

25-
subject.track_feature(1)
26-
expect(subject.analytics_data[1]).to eq(2)
25+
subject.track_feature("my_feature")
26+
expect(subject.analytics_data["my_feature"]).to eq(2)
2727
end
2828

2929
it 'test_analytics_processor_flush_clears_analytics_data' do
30-
subject.track_feature(1)
30+
subject.track_feature("my_feature")
3131
subject.flush
3232
expect(subject.analytics_data).to eql({})
3333
end
3434

3535
it 'test_analytics_processor_flush_post_request_data_match_ananlytics_data' do
36-
subject.track_feature(1)
37-
subject.track_feature(2)
36+
subject.track_feature("my_feature_1")
37+
subject.track_feature("my_feature_2")
3838
expect(flagsmith.api_client).to receive(:post).exactly(1).times do |uri_path, body|
3939
expect(uri_path).to eq('analytics/flags/')
40-
expect(body).to eq({ 1 => 1, 2 => 1 }.to_json)
40+
expect(body).to eq({ "my_feature_1" => 1, "my_feature_2" => 1 }.to_json)
4141
end
4242
subject.flush
4343
end

0 commit comments

Comments
 (0)