77
88module 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 } . \n Trace: #{ 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 } . \n Trace: #{ 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 #
0 commit comments