module Ahoy

Constants

Properties

backward compatibility

VERSION

Public Class Methods

cookies=(value) click to toggle source
# File lib/ahoy.rb, line 33
  def self.cookies=(value)
    if value == false
      if defined?(Mongoid::Document) && defined?(Ahoy::Visit) && Ahoy::Visit < Mongoid::Document
        raise <<~EOS
          This feature requires a new index in Ahoy 5. Set:

            class Ahoy::Visit
              index({visitor_token: 1, started_at: 1})
            end

          Create the index before upgrading, and set:

            Ahoy.cookies = :none
        EOS
      else
        raise <<~EOS
          This feature requires a new index in Ahoy 5. Create a migration with:

            add_index :ahoy_visits, [:visitor_token, :started_at]

          Run it before upgrading, and set:

            Ahoy.cookies = :none
        EOS
      end
    end
    @@cookies = value
  end
cookies?() click to toggle source
# File lib/ahoy.rb, line 129
def self.cookies?
  cookies && cookies != :none
end
instance() click to toggle source
# File lib/ahoy.rb, line 144
def self.instance
  Thread.current[:ahoy]
end
instance=(value) click to toggle source
# File lib/ahoy.rb, line 148
def self.instance=(value)
  Thread.current[:ahoy] = value
end
log(message) click to toggle source
# File lib/ahoy.rb, line 125
def self.log(message)
  logger.info { "[ahoy] #{message}" } if logger
end
mask_ip(ip) click to toggle source
# File lib/ahoy.rb, line 133
def self.mask_ip(ip)
  addr = IPAddr.new(ip)
  if addr.ipv4?
    # set last octet to 0
    addr.mask(24).to_s
  else
    # set last 80 bits to zeros
    addr.mask(48).to_s
  end
end