Skip to content

Commit

Permalink
refactor: FeatureEvaluationResult struct as object
Browse files Browse the repository at this point in the history
  • Loading branch information
rarruda committed Aug 24, 2023
1 parent 2c2c261 commit 59c7a5c
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions lib/unleash/feature_toggle.rb
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,11 @@ def get_variant(context, fallback_variant = Unleash::FeatureToggle.disabled_vari

evaluation_result = evaluate(context)

group_id = evaluation_result[:strategy]&.params.to_h['groupId'] || self.name
group_id = evaluation_result.strategy&.params.to_h['groupId'] || self.name

variant = resolve_variant(context, evaluation_result, group_id)

choice = evaluation_result[:enabled?] ? :yes : :no
choice = evaluation_result.enabled? ? :yes : :no
Unleash.toggle_metrics.increment_variant(self.name, choice, variant.name) unless Unleash.configuration.disable_metrics
variant
end
Expand All @@ -57,9 +57,9 @@ def self.disabled_variant
private

def resolve_variant(context, evaluation_result, group_id)
variant_definitions = evaluation_result[:strategy]&.variant_definitions
variant_definitions = evaluation_result.strategy&.variant_definitions
variant_definitions = self.variant_definitions if variant_definitions.nil? || variant_definitions.empty?
return Unleash::FeatureToggle.disabled_variant unless evaluation_result[:enabled?]
return Unleash::FeatureToggle.disabled_variant unless evaluation_result.enabled?
return Unleash::FeatureToggle.disabled_variant if sum_variant_defs_weights(variant_definitions) <= 0

variant_from_override_match(context, variant_definitions) ||
Expand All @@ -72,7 +72,7 @@ def resolve_stickiness(variant_definitions)

# only check if it is enabled, do not do metrics
def am_enabled?(context)
evaluate(context)[:enabled?]
evaluate(context).enabled?
end

def evaluate(context)
Expand All @@ -86,8 +86,8 @@ def evaluate(context)
FeatureEvaluationResult.new(!strategy.nil?, strategy)
end

Unleash.logger.debug "Unleash::FeatureToggle (enabled:#{self.enabled} " \
"and Strategies combined with contraints returned #{evaluation_result})"
Unleash.logger.debug "Unleash::FeatureToggle (enabled:#{self.enabled}) " \
"and Strategies combined with constraints returned #{evaluation_result})"

evaluation_result
end
Expand Down

0 comments on commit 59c7a5c

Please sign in to comment.