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
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
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;