Skip to content

Instantly share code, notes, and snippets.

View donnut's full-sized avatar

Erwin Poeze donnut

  • Amsterdam, The Netherlands
View GitHub Profile
/**
Code copyright Dustin Diaz and Ross Harmes, Pro JavaScript Design Patterns.
**/
// Constructor.
var Interface = function (name, methods) {
if (arguments.length != 2) {
throw new Error("Interface constructor called with " + arguments.length + "arguments, but expected exactly 2.");
}
this.name = name;
@donnut
donnut / populate_nested_docs.js
Last active December 21, 2015 21:28
populating nested subdocuments
// mongoose v3.6.18
//
var mongoose = require('mongoose');
mongoose.connect('localhost/mydb');
var Schema = mongoose.Schema;
var MasterSchema = new Schema({
name: String,
});
<html>
<head>
<script type="text/javascript" src="bower_components/monet/src/main/javascript/monet.js"></script>
<script type="text/javascript" src="bower_components/jquery/dist/jquery.js"></script>
<script>
window.onload= function() {
var read = IO(function(id) {
return $(id).val();
});
var BVT = function(width, depth, init, elems) {
this._width = width;
this._depth = depth;
this._leaf = depth === 1;
this._shift = (this._depth - 1) * Math.round(Math.log(width) / Math.log(2));
this._himask = this._width - 1;
this._lomask = Math.pow(2, this._shift) - 1;
this._elems = elems;
@donnut
donnut / pickcard.ts
Created September 10, 2014 10:49
Typescript function overloading
var suits = ["hearts", "spades", "clubs", "diamonds"];
function pickCard(x: {suit: string; card: number; }[]): number;
function pickCard(x: number): {suit: string; card: number; };
function pickCard(x): any {
if (typeof x == "object") {
var pickedCard = Math.floor(Math.random() * x.length);
//return pickedCard;
return 'notANumber';
/// <reference path='dst/ramda.d.ts' />
import R = require('ramda');
import Basic = require('./base');
import Base = Basic.Base;
module Bar {
export function bar(s: string): Base {
return {
step: stepBar(s),
@donnut
donnut / bar.js
Created September 20, 2014 11:08
Code Revisions 2 Embed URL HTTPS clone URL You can clone with HTTPS or SSH. Typescript implementation of https://github.com/Dobiasd/articles/blob/master/from_oop_to_fp_-_inheritance_and_the_expression_problem.md
var R = require('ramda');
var Bar;
(function (Bar) {
function bar(s) {
return {
step: stepBar(s),
display: displayBar(s)
};
}
@donnut
donnut / index.js
Created October 1, 2014 13:10
requirebin sketch
// hello world
var R = require('ramda');
var assert = require('assert');
var obj = {person: {name: 'Joe'}};
var clone = R.cloneObj(obj);
assert.deepEqual(clone, obj);
@donnut
donnut / index.js
Last active August 29, 2015 14:07
requirebin sketch
var domify = require('domify')
var R = require('ramda');
var assert = require('assert');
var obj = {person: {name: 'Joe'}};
var clone = R.cloneObj(obj);
clone.person.name = 'Doe';
document.body.appendChild(domify(obj.person.name + ": should be Joe"));
@donnut
donnut / gist:d9d9be2361797740d171
Last active August 29, 2015 14:07
deep copy prototype
Prototypical description of a deep copy method
deepCopy:: a -> b
copyDate:: Date -> Date
a == Number ? s = a:
a == String ? b = a:
a == Boolean ? b = a:
a == Function ? b = a: // remains by reference
a == Date ? b = copyDate a: