module MetaEvents::ControllerMethods

This module defines methods that we add to ActionController::Base if we're being used with Rails.

Public Instance Methods

meta_events_define_frontend_event(category, event, properties = { }, options = { }) click to toggle source

Declares a new “frontend event”. A frontend event is, at its core, a binding from a name to (an event name, a set of properties to fire with that event); by default, the name used is just the event name, without its normal prefix (i.e., foo_bar, not ab1_foo_bar).

You declare the frontend event here, on the server side; the server renders into the page this very binding, and the frontend JavaScript (meta_events.js.erb) can pick up that data and expose it by very easy-to-use JavaScript functions.

category is the category for your event;

# File lib/meta_events/controller_methods.rb, line 18
def meta_events_define_frontend_event(category, event, properties = { }, options = { })
  options.assert_valid_keys(:name, :tracker)

  name = (options[:name] || "#{category}_#{event}").to_s
  tracker = options[:tracker] || meta_events_tracker

  @_meta_events_registered_clientside_events ||= { }
  @_meta_events_registered_clientside_events[name] = tracker.effective_properties(category, event, properties)
end
meta_events_defined_frontend_events() click to toggle source

Returns the set of defined frontend events.

# File lib/meta_events/controller_methods.rb, line 29
def meta_events_defined_frontend_events
  @_meta_events_registered_clientside_events || { }
end
meta_events_tracker() click to toggle source
# File lib/meta_events/controller_methods.rb, line 33
def meta_events_tracker
  raise "You must implement the method #meta_events_tracker on your controllers for this method to work; it should return the MetaEvents::Tracker instance (ideally, cached, using just something like @tracker ||=) that you want to use."
end