Sha256: cf4951a3d4b08ef0ec1ac6b4791f9ac34679d70a44272876a570d3329c4d79e1

Contents?: true

Size: 1.09 KB

Versions: 5

Compression:

Stored size: 1.09 KB

Contents

module Ahoy
  module Stores
    class LogStore < BaseStore

      def track_visit(options, &block)
        data = {
          id: ahoy.visit_id,
          visitor_id: ahoy.visitor_id,
        }.merge(visit_properties.to_hash)
        data[:user_id] = user.id if user
        data[:started_at] = options[:started_at]

        yield(data) if block_given?

        visit_logger.info data.to_json
      end

      def track_event(name, properties, options, &block)
        data = {
          id: options[:id],
          name: name,
          properties: properties,
          visit_id: ahoy.visit_id,
          visitor_id: ahoy.visitor_id
        }
        data[:user_id] = user.id if user
        data[:time] = options[:time]

        yield(data) if block_given?

        event_logger.info data.to_json
      end

      protected

      # TODO disable header
      def visit_logger
        @visit_logger ||= ActiveSupport::Logger.new(Rails.root.join("log/visits.log"))
      end

      def event_logger
        @event_logger ||= ActiveSupport::Logger.new(Rails.root.join("log/events.log"))
      end

    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
ahoy_matey-1.1.1 lib/ahoy/stores/log_store.rb
ahoy_matey-1.1.0 lib/ahoy/stores/log_store.rb
ahoy_matey-1.0.2 lib/ahoy/stores/log_store.rb
ahoy_matey-1.0.1 lib/ahoy/stores/log_store.rb
ahoy_matey-1.0.0 lib/ahoy/stores/log_store.rb