Skip to content

Instantly share code, notes, and snippets.

View mroderick's full-sized avatar

Morgan Roderick mroderick

View GitHub Profile
@mroderick
mroderick / keybase.md
Created August 5, 2014 07:38
keybase.md

Keybase proof

I hereby claim:

  • I am mroderick on github.
  • I am mrgnrdrck (https://keybase.io/mrgnrdrck) on keybase.
  • I have a public key whose fingerprint is 3ABC 8817 CF95 2AF1 78E1 0115 19F2 57E0 CF18 1A69

To claim this, I am signing this object:

Using named constructors

The general usage of a Backbone class is to use the .extend method providing an .initialize method.

var MyView = Backbone.View.extend({
  initialize: function () {
    // Setup object.
 }
@mroderick
mroderick / stringify-tip.js
Created April 15, 2015 10:20
Readable output from JSON.stringify
var o = {hello:'world', greetings: ['one', 'two', 'three']};
undefined
// regular, difficult to read for large objects
JSON.stringify(o);
"{"hello":"world","greetings":["one","two","three"]}"
// presto!
JSON.stringify(o, '', ' ');
"{
@mroderick
mroderick / favourite-food-blogs.md
Last active August 29, 2015 14:27
I was asked for favourite food blogs, networks, etc.
@mroderick
mroderick / test-with-error.js
Last active February 24, 2016 09:23
How can I get mocha to fail on exceptions?
describe('this should cause tests to fail', function(){
// this will cause an exception
// causing mocha to ignore this whole file
var hello = JSON.parse('{"hello":}');
it('should something', function(){
// magic
assert.equal(true, true);
})
});
@mroderick
mroderick / frontend-curriculum.md
Last active October 27, 2017 10:38
Frontend Curriculum
@mroderick
mroderick / README.md
Last active July 18, 2018 14:16
Firefox debugger bug

Firefox debugger bug

When using the debugger and re-using an argument name in a chain of promises, the debugger displays the second argument as undefined().

Try running the examples in Firefox and compare what the debugger displays about the argument to the second callback.

@mroderick
mroderick / dependencies.md
Created February 20, 2020 12:41
Sinon library inter-dependencies

Sinon library inter-dependencies

These diagrams show how the Sinon family of libraries depend on each other. devDependencies are omitted, as they can be considering "internal", and shouldn't be installed by end users of sinon or referee

Sinon

┌────────────────────────┐                                                                                               
│    @sinonjs/commons    │◀──────────────────────────────────────────────────┐                                           
@mroderick
mroderick / eslint-pre-commit.sh
Last active April 28, 2021 14:27
My current git pre-commit hook script for linting staged changes with ESLint
#!/bin/bash
# if there are no staged changes, we can exit immediately
# this is fast and prevents issues when popping a stash we didn't create
STAGED_CHANGES=`git diff-index --cached HEAD --name-only --diff-filter ACMR`
if [ -z "$STAGED_CHANGES" ]; then
exit 0
fi
@mroderick
mroderick / sinon-array-test.js
Created August 9, 2017 08:24
A sample which shows that you cannot stub the `Array.prototype.filter` method. All works fine for `Array.prototype.map`.
'use strict';
const sinon = require( 'sinon' );
const expect = require( 'chai' ).expect;
describe( 'Array.prototype', () => {
describe( 'map()', () => {
it( 'uses native map', () => {
const callback = sinon.spy();
const stub = sinon.stub( Array.prototype, 'map' ).returns( [ 2, 4 ] );