Skip to content

Commit 90b74f2

Browse files
authored
Merge pull request #69 from launchdarkly/jko/sdk-key
api_key -> sdk_key
2 parents 57082aa + 42228eb commit 90b74f2

File tree

7 files changed

+48
-43
lines changed

7 files changed

+48
-43
lines changed

README.md

Lines changed: 3 additions & 3 deletions
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

Lines changed: 1 addition & 1 deletion
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/events.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
module LaunchDarkly
55

66
class EventProcessor
7-
def initialize(api_key, config)
7+
def initialize(sdk_key, config)
88
@queue = Queue.new
9-
@api_key = api_key
9+
@sdk_key = sdk_key
1010
@config = config
1111
@client = Faraday.new
1212
@worker = create_worker
@@ -27,7 +27,7 @@ def create_worker
2727

2828
def post_flushed_events(events)
2929
res = @client.post (@config.events_uri + "/bulk") do |req|
30-
req.headers["Authorization"] = "api_key " + @api_key
30+
req.headers["Authorization"] = @sdk_key
3131
req.headers["User-Agent"] = "RubyClient/" + LaunchDarkly::VERSION
3232
req.headers["Content-Type"] = "application/json"
3333
req.body = events.to_json

lib/ldclient-rb/ldclient.rb

Lines changed: 32 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
module LaunchDarkly
99
#
10-
# A client for the LaunchDarkly API. Client instances are thread-safe. Users
10+
# A client for LaunchDarkly. Client instances are thread-safe. Users
1111
# should create a single client instance for the lifetime of the application.
1212
#
1313
#
@@ -19,26 +19,26 @@ class LDClient
1919
# but for most use cases, the default configuration is appropriate.
2020
#
2121
#
22-
# @param api_key [String] the API key for your LaunchDarkly account
22+
# @param sdk_key [String] the SDK key for your LaunchDarkly account
2323
# @param config [Config] an optional client configuration object
2424
#
2525
# @return [LDClient] The LaunchDarkly client instance
26-
def initialize(api_key, config = Config.default, wait_for_sec = 5)
27-
@api_key = api_key
26+
def initialize(sdk_key, config = Config.default, wait_for_sec = 5)
27+
@sdk_key = sdk_key
2828
@config = config
2929
@store = config.feature_store
30-
requestor = Requestor.new(api_key, config)
30+
requestor = Requestor.new(sdk_key, config)
3131

3232
if !@config.offline?
3333
if @config.stream?
34-
@update_processor = StreamProcessor.new(api_key, config, requestor)
34+
@update_processor = StreamProcessor.new(sdk_key, config, requestor)
3535
else
3636
@update_processor = PollingProcessor.new(config, requestor)
3737
end
3838
@update_processor.start
3939
end
4040

41-
@event_processor = EventProcessor.new(api_key, config)
41+
@event_processor = EventProcessor.new(sdk_key, config)
4242

4343
if !@config.offline? && wait_for_sec > 0
4444
begin
@@ -61,8 +61,7 @@ def toggle?(key, user, default = False)
6161
end
6262

6363
def secure_mode_hash(user)
64-
puts @api_key
65-
OpenSSL::HMAC.hexdigest('sha256', @api_key, user[:key].to_s)
64+
OpenSSL::HMAC.hexdigest('sha256', @sdk_key, user[:key].to_s)
6665
end
6766

6867
#
@@ -115,26 +114,32 @@ def variation(key, user, default)
115114
sanitize_user(user)
116115
feature = @store.get(key)
117116

118-
begin
119-
res = evaluate(feature, user, @store)
120-
if !res[:events].nil?
121-
res[:events].each do |event|
122-
@event_processor.add_event(event)
123-
end
124-
end
125-
if !res[:value].nil?
126-
@event_processor.add_event(kind: "feature", key: key, user: user, value: res[:value], default: default)
127-
return res[:value]
128-
else
129-
@config.logger.debug("[LDClient] Result value is null in toggle")
130-
@event_processor.add_event(kind: "feature", key: key, user: user, value: default, default: default)
131-
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)
132128
end
133-
rescue => exn
134-
@config.logger.warn("[LDClient] Error evaluating feature flag: #{exn.inspect}. \nTrace: #{exn.backtrace}")
135-
@event_processor.add_event(kind: "feature", key: key, user: user, value: default, default: default)
136-
return default
137129
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
138143
end
139144

140145
#

lib/ldclient-rb/requestor.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
module LaunchDarkly
66

77
class Requestor
8-
def initialize(api_key, config)
9-
@api_key = api_key
8+
def initialize(sdk_key, config)
9+
@sdk_key = sdk_key
1010
@config = config
1111
@client = Faraday.new do |builder|
1212
builder.use :http_cache, store: @config.cache_store
@@ -25,14 +25,14 @@ def request_flag(key)
2525

2626
def make_request(path)
2727
res = @client.get (@config.base_uri + path) do |req|
28-
req.headers["Authorization"] = "api_key " + @api_key
28+
req.headers["Authorization"] = @sdk_key
2929
req.headers["User-Agent"] = "RubyClient/" + LaunchDarkly::VERSION
3030
req.options.timeout = @config.read_timeout
3131
req.options.open_timeout = @config.connect_timeout
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

lib/ldclient-rb/stream.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ module LaunchDarkly
1010
INDIRECT_PATCH = :'indirect/patch'
1111

1212
class StreamProcessor
13-
def initialize(api_key, config, requestor)
14-
@api_key = api_key
13+
def initialize(sdk_key, config, requestor)
14+
@sdk_key = sdk_key
1515
@config = config
1616
@store = config.feature_store
1717
@requestor = requestor
@@ -30,7 +30,7 @@ def start
3030

3131
headers =
3232
{
33-
'Authorization' => 'api_key ' + @api_key,
33+
'Authorization' => @sdk_key,
3434
'User-Agent' => 'RubyClient/' + LaunchDarkly::VERSION
3535
}
3636
opts = {:headers => headers, :with_credentials => true}

spec/stream_spec.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@
3333
describe LaunchDarkly::StreamProcessor do
3434
subject { LaunchDarkly::StreamProcessor }
3535
let(:config) { LaunchDarkly::Config.new }
36-
let(:requestor) { LaunchDarkly::Requestor.new("api_key", config)}
37-
let(:processor) { subject.new("api_key", config, requestor) }
36+
let(:requestor) { LaunchDarkly::Requestor.new("sdk_key", config)}
37+
let(:processor) { subject.new("sdk_key", config, requestor) }
3838

3939
describe '#process_message' do
4040
let(:put_message) { OpenStruct.new({data: '{"key": {"value": "asdf"}}'}) }

0 commit comments

Comments
 (0)