Class: Ahoy::Stores::ActiveRecordStore

Inherits:
BaseStore
  • Object
show all
Defined in:
lib/ahoy/stores/active_record_store.rb

Direct Known Subclasses

Ahoy::Store

Instance Method Summary collapse

Methods inherited from BaseStore

#authenticate, #exclude?, #generate_id, #initialize, #report_exception, #user

Constructor Details

This class inherits a constructor from Ahoy::Stores::BaseStore

Instance Method Details

#track_event(name, properties, options) {|event| ... } ⇒ Object

Yields:

  • (event)


27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/ahoy/stores/active_record_store.rb', line 27

def track_event(name, properties, options, &block)
  event =
    event_model.new do |e|
      e.id = options[:id]
      e.visit_id = ahoy.visit_id
      e.user = user
      e.name = name
      e.properties = properties
      e.time = options[:time]
    end

  yield(event) if block_given?

  begin
    event.save!
  rescue ActiveRecord::RecordNotUnique
    # do nothing
  end
end

#track_visit(options) {|visit| ... } ⇒ Object

Yields:



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/ahoy/stores/active_record_store.rb', line 5

def track_visit(options, &block)
  visit =
    visit_model.new do |v|
      v.id = ahoy.visit_id
      v.visitor_id = ahoy.visitor_id
      v.user = user if v.respond_to?(:user=)
      v.started_at = options[:started_at]
    end

  visit_properties.keys.each do |key|
    visit.send(:"#{key}=", visit_properties[key]) if visit.respond_to?(:"#{key}=")
  end

  yield(visit) if block_given?

  begin
    visit.save!
  rescue ActiveRecord::RecordNotUnique
    # do nothing
  end
end

#visitObject



47
48
49
# File 'lib/ahoy/stores/active_record_store.rb', line 47

def visit
  @visit ||= visit_model.where(id: ahoy.visit_id).first if ahoy.visit_id
end