class Ahoy::BaseStore

Attributes

user[W]

Public Class Methods

new(options) click to toggle source
# File lib/ahoy/base_store.rb, line 5
def initialize(options)
  @user = options[:user]
  @options = options
end

Public Instance Methods

authenticate(data) click to toggle source
# File lib/ahoy/base_store.rb, line 19
def authenticate(data)
end
exclude?() click to toggle source
# File lib/ahoy/base_store.rb, line 39
def exclude?
  (!Ahoy.track_bots && bot?) ||
    exclude_by_method? ||
    (defined?(Rails::HealthController) && controller.is_a?(Rails::HealthController))
end
generate_id() click to toggle source
# File lib/ahoy/base_store.rb, line 45
def generate_id
  Ahoy.token_generator.call
end
geocode(data) click to toggle source
# File lib/ahoy/base_store.rb, line 16
def geocode(data)
end
track_event(data) click to toggle source
# File lib/ahoy/base_store.rb, line 13
def track_event(data)
end
track_visit(data) click to toggle source
# File lib/ahoy/base_store.rb, line 10
def track_visit(data)
end
user() click to toggle source
# File lib/ahoy/base_store.rb, line 25
def user
  @user ||= begin
    if Ahoy.user_method.respond_to?(:call)
      if Ahoy.user_method.arity == 1
        Ahoy.user_method.call(controller)
      else
        Ahoy.user_method.call(controller, request)
      end
    else
      controller.send(Ahoy.user_method) if controller.respond_to?(Ahoy.user_method, true)
    end
  end
end
visit() click to toggle source
# File lib/ahoy/base_store.rb, line 22
def visit
end
visit_or_create() click to toggle source
# File lib/ahoy/base_store.rb, line 49
def visit_or_create
  visit
end

Protected Instance Methods

ahoy() click to toggle source
# File lib/ahoy/base_store.rb, line 100
def ahoy
  @ahoy ||= @options[:ahoy]
end
bot?() click to toggle source
# File lib/ahoy/base_store.rb, line 55
def bot?
  unless defined?(@bot)
    @bot = begin
      if request
        if Ahoy.user_agent_parser == :device_detector
          detector = DeviceDetector.new(request.user_agent)
          if Ahoy.bot_detection_version == 2
            detector.bot? || (detector.device_type.nil? && detector.os_name.nil?)
          else
            detector.bot?
          end
        else
          # no need to throw friendly error if browser isn't defined
          # since will error in visit_properties
          Browser.new(request.user_agent).bot?
        end
      else
        false
      end
    end
  end

  @bot
end
controller() click to toggle source
# File lib/ahoy/base_store.rb, line 96
def controller
  @controller ||= @options[:controller]
end
exclude_by_method?() click to toggle source
# File lib/ahoy/base_store.rb, line 80
def exclude_by_method?
  if Ahoy.exclude_method
    if Ahoy.exclude_method.arity == 1
      Ahoy.exclude_method.call(controller)
    else
      Ahoy.exclude_method.call(controller, request)
    end
  else
    false
  end
end
request() click to toggle source
# File lib/ahoy/base_store.rb, line 92
def request
  @request ||= @options[:request] || controller.try(:request)
end