Skip to content

Instantly share code, notes, and snippets.

var _ = require('underscore');
var domready = require('domready'),
bean = require('bean'), // events
bonzo = require('bonzo'), // DOM wrapper/manipulation
qwery = require('qwery'), // css selectors
morpheus = require('morpheus'),
slice = Array.prototype.slice;
// Attach events API to the prototype of DOM wrapper:
@threepointone
threepointone / store.js
Created July 21, 2014 06:00
simple stores for flux
var util = require('util'),
_ = require('underscore'),
EventEmitter = require('events').EventEmitter
function Store(ctx, initial) {
this.state = initial || {};
EventEmitter.call(this);
this.initialize.apply(this, arguments);
}
@threepointone
threepointone / gist:26dffd540c9e438c466f
Created January 14, 2015 21:46
jade -> json trees
var _ = require('underscore'),
Parser = require('jade/lib/parser');
module.exports = {
toJSON: toJSON,
fromJSON: fromJSON
}
function toJSON(src, options) {
var parser = new Parser(src),
@threepointone
threepointone / ionode.diff
Created January 20, 2015 20:55
io.js compatibility
diff --git a/src/clj/cljs/repl/node_repl.js b/src/clj/cljs/repl/node_repl.js
index 6bc1cd2..46e7f7e 100644
--- a/src/clj/cljs/repl/node_repl.js
+++ b/src/clj/cljs/repl/node_repl.js
@@ -1,6 +1,7 @@
process.env.NODE_DISABLE_COLORS = true;
-var net = require("net");
+var net = require("net"),
+ vm = require('vm');
@threepointone
threepointone / gist:2382589
Created April 14, 2012 07:12
YUI-ey way to require node modules
// going to use _ for array flattening until this - http://yuilibrary.com/projects/yui3/ticket/2531371 is resolved.
var _ = require('underscore'),
YUI = require('yui3').YUI;
YUI.add('node-js', function (Y) {
Y.namespace('nodejs');
Y.nodejs.require = function () {
var requires = {},
modules = _.flatten(arguments);
@threepointone
threepointone / gist:3097182
Created July 12, 2012 10:11
simple namespaced events in coffeescript
match = require 'minimatch'
_ = require 'underscore'
class Events
constructor: ->
@_events = [];
on: (evt, handler = _.i, scope = @) ->
@_events.push {evt, handler, scope};@
fire: (evt, args...) ->
_.each @_events, (spec) =>
@threepointone
threepointone / gist:3103649
Created July 13, 2012 08:27
attributes for objects (ala YUI)
match = require 'minimatch'
_ = require 'underscore'
class Events
on: (evt, handler = _.i, scope = @) ->
@_events or= []
spec =
evt: evt
handler: handler
scope: scope
@threepointone
threepointone / gist:3756209
Created September 20, 2012 14:16
Simple Queue/Parallel exec in js
var q = function() {
var args = _.flatten(arguments);
var ctr = args.length;
var complete;
function run(i) {
args[i](function() {
if (i + 1 === ctr) {
if (complete) {
complete();
@threepointone
threepointone / gist:4134486
Created November 23, 2012 08:14
compound tasks
k.task('a', function(done){ done(); });
k.task('b', function(done){ done(); });
k.task('c', function(done){
this.D.a().b().then(done);
});
k().D.c().then(function(){
console.log('done!');
@threepointone
threepointone / ensure-fsa-optimist.js
Created February 15, 2016 20:03
middleware that ensures actions have flux-standard-action shape, but also allows an `optimist` key
// like https://github.com/meadow/redux-ensure-fsa, but allows `optimist` as a key
import isPlainObject from 'lodash.isplainobject';
const validKeys = [
'type',
'payload',
'error',
'meta',
'optimist'