Skip to content

Instantly share code, notes, and snippets.

View grapho's full-sized avatar

Seth Wright grapho

  • Subtle Medical Inc.
  • San Diego, CA
View GitHub Profile
/*
this code assumes you've already included the standard google analytics script in your page somehwere.
it should look something like this...
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
#original attribution https://gist.github.com/alexspeller/6251054 & https://gist.github.com/stevekane/6356006
App.ClickElsewhereMixin = Ember.Mixin.create
#use this method hook to define your desired behavior
onClickElsewhere: Ember.K
#bound version of our instance method
clickHandler: Em.computed ->
@onClickElsewhere.bind(@)
const MESSAGES = {
400: 'Bad syntax',
404: 'Could not find it',
500: 'You broke the server'
};
function blah(statusCode) {
const msg = MESSAGES[statusCode] || 'idk lol';
doSomethingWith(msg);
}
@grapho
grapho / foo.coffee
Created September 29, 2015 18:09 — forked from alexspeller/foo.coffee
App.PushClient = Em.Object.extend
members: prop ->
Em.A()
connect: (key, userId) ->
return unless Pusher?
@pusher?.disconnect()
@pusher = new Pusher key,
import Ember from 'ember';
import RecordDeletedMixin from 'demo-app/mixins/record-deleted';
export default Ember.Route.extend(RecordDeletedMixin, {
pushClient: Ember.inject.service('push-client'),
recordDeleted() {
alert("a post was deleted, but you are not on the post page so you don't care");
},
import Ember from 'ember';
export default Ember.Controller.extend({
appName:'Clock Service',
clock: Ember.inject.service()
});
@grapho
grapho / component.js
Created November 20, 2015 15:52 — forked from adamesque/component.js
Ember Component Life-cycle Docs Feedback
import Ember from 'ember';
export default Ember.Component.extend({
/**
Overall thoughts: Ember.Component needs a section in the module doc block outlining the order of events (just like the 1.13 blog post).
Individual events can then refer back to that lifecycle chart to avoid the "runs xth during re-renders but only on thursdays" sentences.
The module doc block should also get the section on what triggers a re-render (from the 1.13 blog post).
*/
myProp: null,
import Ember from 'ember';
export default Ember.Controller.extend({
a: [1,2,3],
b: [4,5,6],
c: false,
actions: {
toggleLabels() {
this.toggleProperty('c');
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
init() {
this._super(...arguments);
this.items = [
{ id: 1, name: 'first' },
{ id: 2, name: 'second' },
@grapho
grapho / cp-macro.js
Created April 11, 2016 14:47 — forked from poteto/cp-macro.js
When you don't know what keys to observe for a CP, you can use a macro that determines the keys at runtime.
export default function makeComputed(objKey) {
let keys = Object.keys(get(this, objKey))
.filter((key) => {
// choose the keys using some logic
})
.map((key) => `${objKey}.${key}`);
return computed(...keys, {
get() {
// do stuff