module Eventifier::EventTracking

Public Class Methods

url_mappings() click to toggle source
# File lib/eventifier/event_tracking.rb, line 35
def self.url_mappings
  @url_mapppings ||= {}
end

Public Instance Methods

events_for(klass, *args, &block) click to toggle source
# File lib/eventifier/event_tracking.rb, line 3
def events_for(klass, *args, &block)
  @klasses = klass.kind_of?(Array) ? klass : [klass]

  options = args[0] || { }

  methods    = options.delete(:track_on)
  attributes = options.delete(:attributes)

  if block.nil?
    track_on methods, :attributes => attributes
  else
    instance_eval(&block)
  end

  @klasses.each { |klass| Eventifier.tracked_classes << klass }
  Eventifier.tracked_classes.uniq!
end
notify(*args) click to toggle source
# File lib/eventifier/event_tracking.rb, line 25
def notify(*args)
  Eventifier::Notifier.new @klasses, *args
end
track_on(methods, options = {}) click to toggle source
# File lib/eventifier/event_tracking.rb, line 21
def track_on(methods, options = {})
  Eventifier::Tracker.new @klasses, methods, options
end
url(url_proc) click to toggle source
# File lib/eventifier/event_tracking.rb, line 29
def url(url_proc)
  @klasses.each do |target_klass|
    Eventifier::EventTracking.url_mappings[target_klass.name.underscore.to_sym] = url_proc
  end
end