Skip to content

Instantly share code, notes, and snippets.

View mrinterweb's full-sized avatar

Sean McCleary mrinterweb

View GitHub Profile
import Ember from 'ember';
export function initialize(appInstance) {
appInstance.lookup('service:session').reopen({
isAdmin: Ember.computed('jwt', function() {
const isAdmin = this.get('jwt.is_admin');
return (typeof isAdmin === 'boolean') ? isAdmin : false;
}),
jwt: Ember.computed('data.authenticated.access_token', function() {
import Ember from 'ember';
import SessionService from 'ember-simple-auth/services/session';
export default SessionService.reopen({
jwt: {},
// my problem is with this computed property. It is defined as a computed property,
// but when accessed, it is always undefined
isAdmin: Ember.computed('jwt', function() {
debugger; // this line is never hit
var foo = function(e) {
console.log('message in worker: ' + e.data);
};
var blob = new Blob(['var onmessage = ' + foo.toString()], { type: 'text/javascript' });
document.worker = new Worker(window.URL.createObjectURL(blob));
document.worker.postMessage('Howdy');
Friend = DS.Model.extend Cacheable,
avatar_url: DS.attr()
cachableAvatarImage: Em.computed 'avatar_url', ->
id = @get('id')
lfKey = "user-avatar-#{id}"
avatarUrl = @get('avatar_url')
showAsBlob = false
ObjectPromiseProxy = Ember.ObjectProxy.extend(Ember.PromiseProxyMixin)
Rollbar.configure({
transform: function(payload) {
let trace = payload.data.body.trace;
if (trace && trace.frames) {
for (let frame of trace.frames) {
let filename = frame.filename;
if (filename) {
let matches = filename.match(/^(.*\/)((dfw|vendor)(-[a-z0-9]{16,})?\.js)$/i);
if (matches && matches[2]) {
frame.filename = `https://PLATFORM/${matches[2]}`;
@mrinterweb
mrinterweb / gist:666928cf94998a50a4d6
Created March 22, 2015 20:04
git rename by file pattern example
find . -iregex "\(.*\)\.js\.coffee$" -print | xargs ruby -e 'ARGV.each { |fn| `git mv #{fn} #{fn.sub(".js.", ".")}` }'
@mrinterweb
mrinterweb / results
Last active August 29, 2015 14:16
Ruby string matching: sort + select + bsearch is significantly faster than select + include (most of the time)
Calculating -------------------------------------
select + include 30.000 i/100ms
sort + select + bsearch
138.000 i/100ms
presorted: select + bsearch
207.000 i/100ms
-------------------------------------------------
select + include 306.578 (± 4.9%) i/s - 1.530k
sort + select + bsearch
1.387k (± 5.1%) i/s - 7.038k
@mrinterweb
mrinterweb / gist:7e23a153a47c25adba1d
Created September 16, 2014 23:44
Ember-data localforage record cache
App.Cache = Em.Object.extend
init: ->
@store = App.__container__.lookup('store:main')
# tries to load the results from localforage cache or from normal adapter
findAll: ->
localforage.getItem(@modelStr).then (cacheItems)=>
if Em.isEmpty(cacheItems)
@findAndCache()
else
App.FriendCache = Em.Object.extend
init: ->
@store = App.__container__.lookup('store:main')
findAll: ->
localforage.getItem('friends').then (cfriends)=>
if Em.isEmpty(cfriends)
@findAndCache()
else
allFriends = @store.all('friend')
App.ApplicationAdapter = DS.ActiveModelAdapter.extend
namespace: 'api/v1'
host: App.BaseUrl
setHeaders: (->
console.log "setting headers", @get('currentSession.token')
@set('headers',
token: @get('currentSession.token')
Accept: 'application/json'
)
).observes('currentSession.token').on('init')