Ember.Instrumentation Namespace packages/ember-metal/lib/instrumentation.js:3


PRIVATE

The purpose of the Ember Instrumentation module is to provide efficient, general-purpose instrumentation for Ember.

Subscribe to a listener by using Ember.subscribe:

1
2
3
4
5
6
7
8
9
Ember.subscribe("render", {
  before: function(name, timestamp, payload) {

  },

  after: function(name, timestamp, payload) {

  }
});

If you return a value from the before callback, that same value will be passed as a fourth parameter to the after callback.

Instrument a block of code by using Ember.instrument:

1
2
3
Ember.instrument("render.handlebars", payload, function() {
  // rendering logic
}, binding);

Event names passed to Ember.instrument are namespaced by periods, from more general to more specific. Subscribers can listen for events by whatever level of granularity they are interested in.

In the above example, the event is render.handlebars, and the subscriber listened for all events beginning with render. It would receive callbacks for events named render, render.handlebars, render.container, or even render.handlebars.layout.

Show:

Methods

Show:

instrument

(name, _payload, callback, binding) private

Notifies event's subscribers, calls before and after hooks.

Parameters:

name [String]
Namespaced event name.
_payload Object
callback Function
Function that you're instrumenting.
binding Object
Context that instrument function is called with.

reset

private

Resets Ember.Instrumentation by flushing list of subscribers.

subscribe

(pattern, object) Subscriber private

Subscribes to a particular event or instrumented block of code.

Parameters:

pattern [String]
Namespaced event name.
object [Object]
Before and After hooks.

Returns:

Subscriber

unsubscribe

(subscriber) private

Unsubscribes from a particular event or instrumented block of code.

Parameters:

subscriber [Object]