Skip to content

Instantly share code, notes, and snippets.

View collingo's full-sized avatar

Nick Collings collingo

View GitHub Profile
@collingo
collingo / simpleUMD.js
Last active August 29, 2015 13:56
Simple UMD
// resuable shortcut for module definition that works in Node (cjs) and the browser (Requirejs)
// (to save boilerplate may consider making umd function a global var - I know, I know!)
var umd = function (root, dependencies, factory) {
var requiredDependencies = [];
if (typeof define === 'function' && define.amd) {
define(dependencies, factory);
} else if (typeof exports === 'object') {
for (var i = dependencies.length - 1; i >= 0; i--) {
dependencies[i] = require(dependencies[i]);
}
// simple path observing
function O(original, parentsWatcher, path) {
this.original = original;
this.path = path;
this.parentsWatcher = parentsWatcher;
Object.observe(this.original, function(changes) {
changes.forEach(function(change) {
if((change.type === 'add' || change.type === 'update') && typeof this.original[change.name] === "object") {
@collingo
collingo / file1.js
Created February 9, 2012 23:05
Delay removal of splash screen in PhoneGap
// remove splash screen
navigator.splashscreen.hide();
@collingo
collingo / file1.css
Created February 9, 2012 23:16
LESS Gradient Mixin
.twoStopGrad(@one, @two) {
background: @one; /* Old browsers */
background: -moz-linear-gradient(top, @one 0%, @two 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,@one), color-stop(100%,@two)); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, @one 0%,@two 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, @one 0%,@two 100%); /* Opera11.10+ */
background: -ms-linear-gradient(top, @one 0%,@two 100%); /* IE10+ */
filter: ~"progid:DXImageTransform.Microsoft.gradient( startColorstr='@one', endColorstr='@two',GradientType=0 )"; /* IE6-9 */
background: linear-gradient(top, @one 0%,@two 100%); /* W3C */
}
@collingo
collingo / file1.css
Created February 9, 2012 23:14
LESS Animation Mixin
.animate (@name, @duration: 1s, @count: infinite, @direction: normal, @function: ease-in-out) {
-moz-animation-name: @name;
-moz-animation-duration: @duration;
-moz-animation-iteration-count: @count;
-moz-animation-direction: @direction;
-moz-animation-timing-function: @function;
-webkit-animation-name: @name;
-webkit-animation-duration: @duration;
-webkit-animation-iteration-count: @count;
-webkit-animation-direction: @direction;
@collingo
collingo / file1.js
Created March 11, 2012 20:44
Touch screen InactivityTimer
function InactivityTimer() {
this.timer = 0;
this.threshold = 5000;
window.addEventListener('click', this.resetTimer.bind(this), true); // binding to capture phase
this.startTimer.call(this);
}
InactivityTimer.prototype = {
startTimer: function() {
@collingo
collingo / file1.css
Created March 11, 2012 20:24
Touch screen webpage CSS
* {
/* hides the cursor */
cursor:none !important;
/* prevent content selection */
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
@collingo
collingo / viewsSolution.js
Created February 26, 2013 11:04
Backbone Month, Week 3, Views - completed code
var TodoListView = Backbone.View.extend({
tagName: "ul",
id: "todolist",
initialize: function() {
_.bindAll(this, "appendTodo");
},
render: function() {
this.$el.empty();
this.collection.each(this.appendTodo);
return this;
@collingo
collingo / style.scss
Last active December 26, 2015 07:39
Example mapping of preprocessed CSS to semantic HTML
nav#primary {
ul {
li {
a {
&:hover {
}
}
// context
&.home {
@collingo
collingo / index.js
Last active July 3, 2017 10:01
GraphCool schema mocking
const fs = require('fs')
const path = require('path')
const casual = require('casual')
const { makeExecutableSchema, addMockFunctionsToSchema } = require('graphql-tools')
const { graphql } = require('graphql')
fs.readFile(path.join(__dirname, './schema.graphql'), (error, schemaBuffer) => {
const schemaString = schemaBuffer.toString()
const schema = makeExecutableSchema({
typeDefs: schemaString