Sha256: 01df37855783e52352a890528988ace82c77c99ba71fdbee3978b77ac2550eb9

Contents?: true

Size: 823 Bytes

Versions: 2

Compression:

Stored size: 823 Bytes

Contents

module ReTrack
  module Tracker
    extend ActiveSupport::Concern

    included do
      before_filter :rt_track_referer
    end

    def rt_track_referer
      if session[:retrack].nil? && !request_from_a_known_bot?
        session[:retrack] = hash = {}
        hash[:referer_url] = request.headers['HTTP_REFERER'].presence || 'none'
        hash[:first_url] = request.url
        hash[:user_agent] = request.env['HTTP_USER_AGENT']
        hash[:first_visited_at] = Time.now
        hash[:ip] = request.remote_ip
      end
    end

    def request_from_a_known_bot?
      bot_user_agents = ['GoogleBot', 'Mediapartners-Google', 'msnbot',
        'TwengaBot', 'DigExt; DTS Agent', 'YandexImages']
      bot_user_agents_re = /\b(#{bot_user_agents * '|'})\b/i
      request.user_agent =~ bot_user_agents_re
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
re_track-0.3.1 lib/re_track/tracker.rb
re_track-0.3.0 lib/re_track/tracker.rb