Class: Workarea::Segment::Rules::TrafficReferrer

Inherits:
Base
  • Object
show all
Defined in:
app/models/workarea/segment/rules/traffic_referrer.rb

Instance Method Summary collapse

Methods inherited from Base

slug

Methods included from ApplicationDocument

#releasable?

Methods included from Sidekiq::Callbacks

assert_valid_config!, async, disable, enable, inline, #run_callbacks

Methods included from Mongoid::Document

#embedded_children

Instance Method Details

#medium_match?(referrer) ⇒ Boolean

Returns:

  • (Boolean)


15
16
17
# File 'app/models/workarea/segment/rules/traffic_referrer.rb', line 15

def medium_match?(referrer)
  medium.to_s.strip.casecmp?(referrer.medium)
end

#qualifies?(visit) ⇒ Boolean

Returns:

  • (Boolean)


9
10
11
12
13
# File 'app/models/workarea/segment/rules/traffic_referrer.rb', line 9

def qualifies?(visit)
  medium_match?(visit.referrer) ||
    source_match?(visit.referrer) ||
    url_match?(visit.referrer)
end

#source_match?(referrer) ⇒ Boolean

Returns:

  • (Boolean)


19
20
21
# File 'app/models/workarea/segment/rules/traffic_referrer.rb', line 19

def source_match?(referrer)
  source.any? { |s| s.strip.casecmp?(referrer.source) }
end

#url_match?(referrer) ⇒ Boolean

Returns:

  • (Boolean)


23
24
25
# File 'app/models/workarea/segment/rules/traffic_referrer.rb', line 23

def url_match?(referrer)
  url.present? && referrer.uri.to_s =~ /#{url.strip}/i
end