Sha256: 730c5001e915ed1d8cb0c1d34c6d1d1e1591a9e0a45e728f6a32bb2648b2474c

Contents?: true

Size: 724 Bytes

Versions: 5

Compression:

Stored size: 724 Bytes

Contents

module Workarea
  class Segment
    module Rules
      class TrafficReferrer < Base
        field :medium, type: String
        field :source, type: Array, default: []
        field :url, type: String

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

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

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

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

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
workarea-core-3.5.4 app/models/workarea/segment/rules/traffic_referrer.rb
workarea-core-3.5.3 app/models/workarea/segment/rules/traffic_referrer.rb
workarea-core-3.5.2 app/models/workarea/segment/rules/traffic_referrer.rb
workarea-core-3.5.1 app/models/workarea/segment/rules/traffic_referrer.rb
workarea-core-3.5.0 app/models/workarea/segment/rules/traffic_referrer.rb