Skip to content

Instantly share code, notes, and snippets.

@chrism
chrism / initializers..poller.js
Created November 28, 2014 10:05
Dependency Injection in Ember using Singleton
import Poller from '../utils/poller';
export function initialize(container, application) {
var poller = Poller.create();
// this works but I want a singleton
// application.register('poller:main', poller, { instantiate: false });
application.register('poller:main', poller);
application.inject('route', 'poller', 'poller:main');
application.inject('controller', 'poller', 'poller:main');
@chrism
chrism / video.downloading.js
Last active August 29, 2015 14:10
Still fires observer even though route has changed
import Ember from "ember";
export default Ember.ObjectController.extend({
assetPolling: function() {
Ember.run.once(this, function() {
if (this.get('hasRemainingAssets')) {
Ember.Logger.log('remaining assets...');
this.poller.start();
} else {
this.poller.stop();
@chrism
chrism / gist:f91ec9a275efb47f90f0
Last active August 29, 2015 14:10
Strange return behaviour...
// this works...
return 'ppp'
// this logs 1
this.container.lookup('store:main').find('user_profile', 1).then(function(user_profile) {
var userId = user_profile.get('id');
Ember.Logger.log('id is...', userId);
})
// but this returns undefined??

Keybase proof

I hereby claim:

  • I am chrism on github.
  • I am chrismasters (https://keybase.io/chrismasters) on keybase.
  • I have a public key whose fingerprint is BEE9 352B C9DC 5922 C310 9AB1 2A86 4666 0A74 209D

To claim this, I am signing this object:

// controllers/footages.js
import Ember from 'ember';
export default Ember.Controller.extend({
queryParams: ['showNoAssetsModal'],
needs: ['video'],
emptyImages: Ember.computed.empty('controllers.video.images'),
emptyFootages: Ember.computed.empty('controllers.video.footages'),
@chrism
chrism / Brocfile.js
Created March 19, 2015 18:04
Dependencies with Ember-CLI & Broccoli
/* global require, module */
var EmberApp = require('ember-cli/lib/broccoli/ember-app');
var app = new EmberApp();
app.import('bower_components/eventemitter2/lib/eventemitter2.js', {
exports: {
'EventEmitter': [
'default'
@chrism
chrism / component.js
Created April 13, 2015 14:12
Computed Property
// this works (but doesn't cache the values for image.src, image.width, image.height)
export default Ember.Component.extend({
didInsertElement: function() {
var reader = new FileReader();
reader.onload = () => {
var image = new Image();
image.onload = () => {
this.addImage(image.src, image.width, image.height);
};
@chrism
chrism / gist:88475bd6f249090bf7f2
Last active August 29, 2015 14:20
cancelling an Ember.run.later
import Ember from 'ember';
import InViewportMixin from 'ember-in-viewport';
const {
get: get,
set: set,
setProperties,
computed,
run,
on,
@chrism
chrism / example-service-test.js
Last active August 29, 2015 14:21
Simple service example
import Ember from 'ember';
import {
module,
test
} from 'qunit';
import startApp from 'ember-mock-services-example/tests/helpers/start-app';
var application;
module('Acceptance: ExampleService', {
@chrism
chrism / links.md
Last active August 29, 2015 14:21
Good resources for Ember Acceptance Testing