Skip to content

Instantly share code, notes, and snippets.

View ssube's full-sized avatar

Sean Sube ssube

View GitHub Profile
@ssube
ssube / dig.js
Created December 16, 2014 18:25
/**
* Uses map syntax to retrieve the given object, or return null if any
* portion of the chain is null or undefined. The chain should be given with one
* field or method per argument. Methods will be called with the previous step as
* `this` and no arguments; this can be used for many string and array methods, as
* well as getters from various libraries.
*
* For example, given the object `foo = {bar: function (x) { return x+3; }};`, then
* `objectDig(foo, "bar.toExponential", [[2], [1]])` would return "5.0e+0".
*
snake_case
lisp-case (or kebab-case)
Train-Case
TitleCase
camelCase
nocase
VBCASE (OR UPPERCASE)
UPPER_SNAKE
$E$XC$E$L_$CA$S$E
mYsPaCeCaSe
{
init: function(elevators, floors) {
var reqs = {};
function requestFloor(num) {
reqs[num] = (reqs[num] || 0) + 1;
}
function getIdealFloor() {
var floor = 0, count = 0;
for (var next in reqs) {
if (reqs.hasOwnProperty(next) && reqs[next] > count) {
@ssube
ssube / balls.js
Last active August 29, 2015 14:14
var strips = 2;
var counter = 0;
var reserve = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
function getPool() {
return [strips, strips, strips, strips, strips, strips, strips, strips, strips, strips];
}
function discardPool(pool) {
for (var i = 0; i < 10; ++i) {
var gulp = require("gulp");
var browserify = require("browserify");
var to5browserify = require("6to5-browserify");
var source = require("vinyl-source-stream");
var BUNDLES = [
"build.js",
"export.js",
"main.js"
];
@ssube
ssube / numberator.js
Created February 27, 2015 17:17
numberator
class Numberator {
max = 0;
state = 0;
constructor(max, state = 0) {
this.max = max;
this.state = state;
}
[Symbol.iterator]() {
class MyError extends Error {
constructor() {
super();
}
}
class YourError extends MyError {
constructor() {
super();
}
@ssube
ssube / gulpfile.js
Created April 3, 2015 21:12
TS/Gulp
var gulp = require('gulp');
var ts = require('gulp-typescript');
var less = require('gulp-less');
var karma = require('karma').server;
var del = require('del');
var overrideConfig = {};
try {
overrideConfig = require('./overrides.json');
console.log('Loading override settings.');
@ssube
ssube / full.js
Last active August 29, 2015 14:18
class MachineNode {
static create(node) {
switch (node.type) {
case 'group':
return new GroupNode(node.g);
case 'char':
return new CharacterNode(node.c);
case 'alt':
return new AlternativeNode(node.l, node.r);
case 'list':
@ssube
ssube / group.js
Created April 16, 2015 17:51
es6 group
function group(list) {
let l = undefined, r = [], w = [];
for (let f of list) {
if (l === undefined || f === l) {
w.push(f);
} else {
r.push(w);
w = [f];
}
l = f;