@@ -312,46 +312,8 @@ def get_variations_for_feature_list(project_config, feature_flags, user_context,
312312
313313 decisions = [ ]
314314 feature_flags . each do |feature_flag |
315- # Check holdouts first
316- holdouts = project_config . get_holdouts_for_flag ( feature_flag [ 'id' ] )
317- decision_result = nil
318-
319- if holdouts && !holdouts . empty?
320- # Check each holdout
321- holdouts . each do |holdout |
322- holdout_decision = get_variation_for_holdout ( holdout , user_context , project_config )
323-
324- if holdout_decision . decision
325- # User is bucketed into a holdout
326- decision_result = holdout_decision
327- break
328- else
329- # User didn't bucket into this holdout, try next or continue to experiments
330- decision_result ||= holdout_decision
331- end
332- end
333- end
334-
335- # If no holdout decision, check if the feature is being experiment on and whether the user is bucketed into the experiment
336- if decision_result . nil? || decision_result . decision . nil?
337- decision_result_exp = get_variation_for_feature_experiment ( project_config , feature_flag , user_context , user_profile_tracker , decide_options )
338- if decision_result
339- decision_result . reasons . push ( *decision_result_exp . reasons )
340- decision_result . decision = decision_result_exp . decision if decision_result_exp . decision
341- decision_result . error = decision_result_exp . error if decision_result_exp . error
342- else
343- decision_result = decision_result_exp
344- end
345-
346- # Only process rollout if no experiment decision was found and no error
347- if decision_result . decision . nil? && !decision_result . error
348- decision_result_rollout = get_variation_for_feature_rollout ( project_config , feature_flag , user_context ) unless decision_result . decision
349- decision_result . decision = decision_result_rollout . decision
350- decision_result . reasons . push ( *decision_result_rollout . reasons )
351- end
352- end
353-
354- decisions << decision_result
315+ decision = get_decision_for_flag ( feature_flag , user_context , project_config , decide_options , user_profile_tracker )
316+ decisions << decision
355317 end
356318 user_profile_tracker &.save_user_profile
357319 decisions
0 commit comments