Module: OnboardOnRails::Concerns::SegmentEvaluator

Extended by:
ActiveSupport::Concern
Included in:
Tour
Defined in:
app/models/onboard_on_rails/concerns/segment_evaluator.rb

Instance Method Summary collapse

Instance Method Details

#matches_segment?(user_attributes) ⇒ Boolean

Returns:

  • (Boolean)


6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'app/models/onboard_on_rails/concerns/segment_evaluator.rb', line 6

def matches_segment?(user_attributes)
  rules = segment_rules
  return true if rules.blank? || rules["conditions"].blank?

  conditions = rules["conditions"]
  logic = rules.fetch("logic", "and")

  if logic == "or"
    conditions.any? { |c| evaluate_condition(c, user_attributes) }
  else
    conditions.all? { |c| evaluate_condition(c, user_attributes) }
  end
end