Class: Rack::Tracker::Criteo

Inherits:
Handler
  • Object
show all
Defined in:
lib/rack/tracker/criteo/criteo.rb

Defined Under Namespace

Classes: Event

Constant Summary collapse

TRACKER_EVENTS =
{
  # event name => event key name, e.g. { event: 'setSiteType', type: '' }
  set_site_type: :type,
  set_account: :account,
  set_customer_id: :id
}

Instance Attribute Summary

Attributes inherited from Handler

#env, #options

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Handler

#events, #initialize

Constructor Details

This class inherits a constructor from Rack::Tracker::Handler

Class Method Details

.track(name, event_name, event_args = {}) ⇒ Object



33
34
35
# File 'lib/rack/tracker/criteo/criteo.rb', line 33

def self.track(name, event_name, event_args = {})
  { name.to_s => [{ 'class_name' => 'Event', 'event' => event_name.to_s.camelize(:lower) }.merge(event_args)] }
end

Instance Method Details

#renderObject



29
30
31
# File 'lib/rack/tracker/criteo/criteo.rb', line 29

def render
  Tilt.new( File.join( File.dirname(__FILE__), 'template', 'criteo.erb') ).render(self)
end

#tracker_eventsObject

global events (setSiteType, setAccount, …) for each tracker instance



19
20
21
22
23
24
25
26
27
# File 'lib/rack/tracker/criteo/criteo.rb', line 19

def tracker_events
  @tracker_events ||= [].tap do |tracker_events|
    options.slice(*TRACKER_EVENTS.keys).each do |key, value|
      if option_value = value.respond_to?(:call) ? value.call(env) : value
        tracker_events << Event.new(:event => "#{key}".camelize(:lower),  TRACKER_EVENTS[key] => "#{option_value}")
      end
    end
  end
end