11require "date"
22
33module LaunchDarkly
4-
54 module Evaluation
65 BUILTINS = [ :key , :ip , :country , :email , :firstName , :lastName , :avatar , :name , :anonymous ]
76
87 OPERATORS = {
9- in :
8+ in :
109 lambda do |a , b |
1110 a == b
1211 end ,
13- endsWith :
12+ endsWith :
1413 lambda do |a , b |
1514 ( a . is_a? String ) && ( a . end_with? b )
1615 end ,
17- startsWith :
16+ startsWith :
1817 lambda do |a , b |
1918 ( a . is_a? String ) && ( a . start_with? b )
2019 end ,
@@ -50,7 +49,7 @@ module Evaluation
5049 end
5150 if b . is_a? String
5251 b = DateTime . rfc3339 ( b ) . strftime ( '%Q' ) . to_i
53- end
52+ end
5453 ( a . is_a? Numeric ) ? a < b : false
5554 rescue => e
5655 false
@@ -60,11 +59,11 @@ module Evaluation
6059 lambda do |a , b |
6160 begin
6261 if a . is_a? String
63- a = DateTime . rfc3339 ( a ) . strftime ( '%Q' ) . to_i
62+ a = DateTime . rfc3339 ( a ) . strftime ( "%Q" ) . to_i
6463 end
6564 if b . is_a? String
66- b = DateTime . rfc3339 ( b ) . strftime ( '%Q' ) . to_i
67- end
65+ b = DateTime . rfc3339 ( b ) . strftime ( "%Q" ) . to_i
66+ end
6867 ( a . is_a? Numeric ) ? a > b : false
6968 rescue => e
7069 false
@@ -93,23 +92,22 @@ def evaluate(flag, user, store)
9392 if flag [ :on ]
9493 res = eval_internal ( flag , user , store , events )
9594
96- return { value : res , events : events } if !res . nil?
95+ return { value : res , events : events } if !res . nil?
9796 end
9897
9998 if !flag [ :offVariation ] . nil? && flag [ :offVariation ] < flag [ :variations ] . length
10099 value = flag [ :variations ] [ flag [ :offVariation ] ]
101- return { value : value , events : events }
100+ return { value : value , events : events }
102101 end
103102
104- { value : nil , events : events }
103+ { value : nil , events : events }
105104 end
106105
107106 def eval_internal ( flag , user , store , events )
108107 failed_prereq = false
109108 # Evaluate prerequisites, if any
110109 if !flag [ :prerequisites ] . nil?
111110 flag [ :prerequisites ] . each do |prerequisite |
112-
113111 prereq_flag = store . get ( prerequisite [ :key ] )
114112
115113 if prereq_flag . nil? || !prereq_flag [ :on ]
@@ -119,7 +117,7 @@ def eval_internal(flag, user, store, events)
119117 prereq_res = eval_internal ( prereq_flag , user , store , events )
120118 variation = get_variation ( prereq_flag , prerequisite [ :variation ] )
121119 events . push ( kind : "feature" , key : prereq_flag [ :key ] , value : prereq_res , version : prereq_flag [ :version ] , prereqOf : flag [ :key ] )
122- if prereq_res . nil? || prereq_res != variation
120+ if prereq_res . nil? || prereq_res != variation
123121 failed_prereq = true
124122 end
125123 rescue => exn
@@ -149,7 +147,7 @@ def eval_rules(flag, user)
149147 end
150148 end
151149 end
152- end
150+ end
153151
154152 # Check custom rules
155153 if !flag [ :rules ] . nil?
@@ -202,7 +200,7 @@ def clause_match_user(clause, user)
202200 end
203201
204202 maybe_negate ( clause , match_any ( op , val , clause [ :values ] ) )
205- end
203+ end
206204
207205 def variation_for_user ( rule , user , flag )
208206 if !rule [ :variation ] . nil? # fixed variation
@@ -234,7 +232,7 @@ def bucket_user(user, key, bucket_by, salt)
234232 hash_key = "%s.%s.%s" % [ key , salt , id_hash ]
235233
236234 hash_val = ( Digest ::SHA1 . hexdigest ( hash_key ) ) [ 0 ..14 ]
237- hash_val . to_i ( 16 ) / Float ( 0xFFFFFFFFFFFFFFF )
235+ hash_val . to_i ( 16 ) / Float ( 0xFFFFFFFFFFFFFFF )
238236 end
239237
240238 def user_value ( user , attribute )
@@ -260,6 +258,4 @@ def match_any(op, value, values)
260258 return false
261259 end
262260 end
263-
264261end
265-
0 commit comments