Ember.Instrumentation Namespace packages/ember-metal/lib/instrumentation.js:3
Defined in: packages/ember-metal/lib/instrumentation.js:3
Module: ember-metal
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
.
Expands pattern
, invoking callback
for each expansion.
The only pattern supported is brace-expansion, anything else will be passed
once to callback
directly. Furthermore, brace-expansion is only applied to
the entire pattern, not to substrings.
Example ```js function echo(arg){ console.log(arg); }
Ember.expandProperties('foo.bar', echo); //=> 'foo.bar' Ember.expandProperties('{foo,bar}', echo); //=> 'foo', 'bar' Ember.expandProperties('foo.{bar,baz}', echo); //=> 'foo.{bar,baz}' ```
getProperties
(obj, list)
Hash
To get multiple properties at once, call Ember.getProperties
with an object followed by a list of strings or an array:
1 |
Ember.getProperties(record, 'firstName', 'lastName', 'zipCode'); // { firstName: 'John', lastName: 'Doe', zipCode: '10011' } |
is equivalent to:
1 |
Ember.getProperties(record, ['firstName', 'lastName', 'zipCode']); // { firstName: 'John', lastName: 'Doe', zipCode: '10011' } |
Parameters:
- obj
- list String...|Array
- of keys to get
Returns:
- Hash
instrument
(name, payload, callback, binding)
Notifies event's subscribers, calls before
and after
hooks.
reset
Resets Ember.Instrumentation
by flushing list of subscribers.
subscribe
(pattern, object)
Subscriber
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)
Unsubscribes from a particular event or instrumented block of code.
Parameters:
- subscriber Object