Skip to content

Instantly share code, notes, and snippets.

@poteto
Last active August 29, 2015 14:26
Show Gist options
  • Save poteto/e553f03f895e4c068940 to your computer and use it in GitHub Desktop.
Save poteto/e553f03f895e4c068940 to your computer and use it in GitHub Desktop.
import Ember from 'ember';
export default Ember.Service.extend({
_adapters: {},
init() {
const adapters = Ember.getWithDefault(this, 'metricsAdapters', Ember.A([]));
this._super(...arguments);
this.activateAdapters(adapters);
},
activateAdapters(adapterOptions = []) {
const cachedAdapters = Ember.get(this, '_adapters');
const activatedAdapters = {};
adapterOptions.forEach((adapterOption) => {
const { name } = adapterOption;
let adapter;
if (cachedAdapters[name]) {
Ember.warn(`[ember-metrics] Metrics adapter ${name} has already been activated.`);
adapter = cachedAdapters[name];
} else {
adapter = this._activateAdapter(adapterOption);
}
Ember.set(activatedAdapters, name, adapter);
});
return Ember.set(this, '_adapters', activatedAdapters);
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment