Skip to content

Commit 2e21a7e

Browse files
committed
Clear the duplicate code
1 parent 646032b commit 2e21a7e

File tree

1 file changed

+2
-40
lines changed

1 file changed

+2
-40
lines changed

lib/optimizely/decision_service.rb

Lines changed: 2 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)