@@ -114,26 +114,32 @@ def variation(key, user, default)
114
114
sanitize_user ( user )
115
115
feature = @store . get ( key )
116
116
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 )
131
128
end
132
- rescue => exn
133
- @config . logger . warn ( "[LDClient] Error evaluating feature flag: #{ exn . inspect } . \n Trace: #{ exn . backtrace } " )
134
- @event_processor . add_event ( kind : "feature" , key : key , user : user , value : default , default : default )
135
- return default
136
129
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
137
143
end
138
144
139
145
#
0 commit comments