Skip to content

Commit 42228eb

Browse files
authored
Merge pull request #70 from launchdarkly/jko/extra-flag-request-data
Send prereqOf and version in flag request events
2 parents 457bdd1 + 6840126 commit 42228eb

File tree

4 files changed

+29
-23
lines changed

4 files changed

+29
-23
lines changed

README.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ gem install ldclient-rb
2323
require 'ldclient-rb'
2424
```
2525

26-
2. Create a new LDClient with your API key:
26+
2. Create a new LDClient with your SDK key:
2727

2828
```ruby
29-
client = LaunchDarkly::LDClient.new("your_api_key")
29+
client = LaunchDarkly::LDClient.new("your_sdk_key")
3030
```
3131

3232
### Ruby on Rails
@@ -36,7 +36,7 @@ client = LaunchDarkly::LDClient.new("your_api_key")
3636
1. Initialize the launchdarkly client in `config/initializers/launchdarkly.rb`:
3737

3838
```ruby
39-
Rails.configuration.ld_client = LaunchDarkly::LDClient.new("your_api_key")
39+
Rails.configuration.ld_client = LaunchDarkly::LDClient.new("your_sdk_key")
4040
```
4141

4242
2. You may want to include a function in your ApplicationController

lib/ldclient-rb/evaluation.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ def eval_internal(flag, user, store, events)
118118
begin
119119
prereq_res = eval_internal(prereq_flag, user, store, events)
120120
variation = get_variation(prereq_flag, prerequisite[:variation])
121-
events.push(kind: "feature", key: prereq_flag[:key], value: prereq_res)
121+
events.push(kind: "feature", key: prereq_flag[:key], value: prereq_res, version: prereq_flag[:version], prereqOf: flag[:key])
122122
if prereq_res.nil? || prereq_res!= variation
123123
failed_prereq = true
124124
end

lib/ldclient-rb/ldclient.rb

+24-18
Original file line numberDiff line numberDiff line change
@@ -114,26 +114,32 @@ def variation(key, user, default)
114114
sanitize_user(user)
115115
feature = @store.get(key)
116116

117-
begin
118-
res = evaluate(feature, user, @store)
119-
if !res[:events].nil?
120-
res[:events].each do |event|
121-
@event_processor.add_event(event)
122-
end
123-
end
124-
if !res[:value].nil?
125-
@event_processor.add_event(kind: "feature", key: key, user: user, value: res[:value], default: default)
126-
return res[:value]
127-
else
128-
@config.logger.debug("[LDClient] Result value is null in toggle")
129-
@event_processor.add_event(kind: "feature", key: key, user: user, value: default, default: default)
130-
return default
117+
if feature.nil?
118+
@config.logger.error("[LDClient] Unknown feature flag #{key}. Returning default value")
119+
@event_processor.add_event(kind: "feature", key: key, value: default, default: default)
120+
return default
121+
end
122+
123+
begin
124+
res = evaluate(feature, user, @store)
125+
if !res[:events].nil?
126+
res[:events].each do |event|
127+
@event_processor.add_event(event)
131128
end
132-
rescue => exn
133-
@config.logger.warn("[LDClient] Error evaluating feature flag: #{exn.inspect}. \nTrace: #{exn.backtrace}")
134-
@event_processor.add_event(kind: "feature", key: key, user: user, value: default, default: default)
135-
return default
136129
end
130+
if !res[:value].nil?
131+
@event_processor.add_event(kind: "feature", key: key, user: user, value: res[:value], default: default, version: feature[:version])
132+
return res[:value]
133+
else
134+
@config.logger.debug("[LDClient] Result value is null in toggle")
135+
@event_processor.add_event(kind: "feature", key: key, user: user, value: default, default: default, version: feature[:version])
136+
return default
137+
end
138+
rescue => exn
139+
@config.logger.warn("[LDClient] Error evaluating feature flag: #{exn.inspect}. \nTrace: #{exn.backtrace}")
140+
@event_processor.add_event(kind: "feature", key: key, user: user, value: default, default: default, version: feature[:version])
141+
return default
142+
end
137143
end
138144

139145
#

lib/ldclient-rb/requestor.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def make_request(path)
3232
end
3333

3434
if res.status == 401
35-
@config.logger.error("[LDClient] Invalid API key")
35+
@config.logger.error("[LDClient] Invalid SDK key")
3636
return nil
3737
end
3838

0 commit comments

Comments
 (0)