Skip to content

Instantly share code, notes, and snippets.

View subtubes-io's full-sized avatar
👷‍♂️
Building things

subtubes subtubes-io

👷‍♂️
Building things
  • Napa, California
View GitHub Profile
@subtubes-io
subtubes-io / reduce function
Created April 17, 2014 03:30
My version of Array reduce
it("Should reduce", function () {
var result;
var _ = {
reduce: function () {
var reduce = function (arr, func) {
var i = 0;
var len = arr.length;
@subtubes-io
subtubes-io / Array.prototype methods
Created April 17, 2014 04:03
A suite of jasmine tests for the Array.prototype methods.
(function () {
describe("Array", function () {
it("Array reverse()", function () {
expect("sgniht").toBe("things".split("").reverse().join(""));
});
it("Array sort()", function () {
@subtubes-io
subtubes-io / Simple Spy class
Created April 17, 2014 06:47
JavaScripot Spy Class for 3rd party testing frameworks
(function () {
window.EhSpy = function (suspect, methodName) {
var self = this;
self.original = suspect[methodName];
suspect[methodName] = function () {
@subtubes-io
subtubes-io / Arrays.prototype part2
Created April 17, 2014 16:00
Most fo this suite of tests covers mutator functions for arrays
(function () {
describe("Array", function () {
//part 2
it("Array push()", function () {
var arr = [];
arr.push(2);
@subtubes-io
subtubes-io / AngularJS Model Sample
Created April 23, 2014 17:33
AngularJS Model Sample
(function () {
"use strict";
angular.module("exampleApp")
.provider("Person", function () {
this.$get = [function () {
var Person = function (id) {
@subtubes-io
subtubes-io / AngularJS Webworker
Created April 23, 2014 18:47
AngularJS Webworker
(function () {
"use strict";
angular.module("exampleApp")
.factory("WebWorks", ["$q", function ($q) {
var worker = new Worker('scripts/workers/doWork.js');
var defer;
worker.addEventListener('message', function(e) {
@subtubes-io
subtubes-io / Recursion Example
Last active August 29, 2015 14:00
JavaScript Recursion Example
(function () {
"use strict";
var list = [
{ name: "level 1", obs: [
{name: "level 2", obs: [
{name: "level 3 a"},
{name: "level 3 b"}
]}
@subtubes-io
subtubes-io / JavaScript Mixin Pattern
Created April 25, 2014 19:16
Basic JavaScript mixin paattern
(function () {
"use strict";
var mixin = function () {
var arg,
prop,
mixedChild = { },
len = arguments.length;
for (arg = 0; arg < len; arg ++) {
@subtubes-io
subtubes-io / Method Binding Mixin in JavaScript
Created April 26, 2014 00:11
Method binding mixing pattern using JavaScript with partial application
var methodMixin = function (func, obj){
var args = Array.prototype.slice.apply(arguments, [2]);
return function () {
func.apply(obj, args);
}
};
@subtubes-io
subtubes-io / Recursive Function - Function Property
Created April 26, 2014 14:00
Based on example in JavaScript Ninja - John Resig Nifty little caveat regarding recursive function as a property. Key is to use a inline function
var ninja = {
chirp: function signal(n) {
if (n > 1) {
return signal(n-1) + " - chirp";
}
else{
return "chirp";
}
}