Skip to content

Instantly share code, notes, and snippets.

View bryanforbes's full-sized avatar

Bryan Forbes bryanforbes

View GitHub Profile
@bryanforbes
bryanforbes / module.js
Created August 29, 2012 23:59
DOM Ready module
define(["dojo/domReady!"], function(domReady){
function init(){
// do something on domReady
}
(domReady||init)(init);
});
@bryanforbes
bryanforbes / _OnDijitClickMixin.js
Created July 12, 2012 14:47
_OnDijitClickMixin fix for touch devices
// Implemented as a monkey-patch for dijit/_OnDijitClickMixin
define([
"dijit/_OnDijitClickMixin",
"dojo/on",
"dojo/_base/window",
"dojo/dom-geometry",
"dijit/registry",
"dojo/domReady!"
], function(_OnDijitClickMixin, on, win, domGeometry, registry){
@bryanforbes
bryanforbes / notify.js
Created July 9, 2012 19:30
dojo/request/notify
define(['../Evented', '../_base/lang', './util'], function(Evented, lang, util){
// module:
// dojo/request/notify
// summary:
// Global notification API for dojo/request
//
// | require('dojo/request', 'dojo/request/notify',
// | function(request, notify){
// | notify('load', function(response){
// | if(response.url === 'someUrl.html'){
@bryanforbes
bryanforbes / rmtree.js
Created June 20, 2012 19:35
Recursive rmdir in Node
define([
"dojo/Deferred",
"dojo/promise/all",
"dojo/node!fs",
"dojo/node!path"
], function(Deferred, all, fs, path){
var slice = Array.prototype.slice;
function adapt(func){
var args = slice.call(arguments, 1),
def = new Deferred;
@bryanforbes
bryanforbes / adapt.js
Created June 20, 2012 18:19
Deferred adapter for node
define([
"dojo/Deferred"
], function(Deferred){
var slice = Array.prototype.slice;
return function adapt(func){
var args = slice.call(arguments, 1),
def = new Deferred;
args.push(function(err, value){
if(err){
@bryanforbes
bryanforbes / cross-site.html
Created June 18, 2012 18:44
Cross-site test
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Test</title>
<script>
var dojoConfig = {
async: true
};
function makeError(name, ctor, base, props){
base = base || Error;
var ErrorCtor = function(message){
if(base === Error){
Error.captureStackTrace && Error.captureStackTrace(this, ErrorCtor);
base.call(this, message);
}else{
base.apply(this, arguments);
}
ctor && ctor.apply(this, arguments);
@bryanforbes
bryanforbes / datebug.js
Created March 6, 2012 17:18
Neat Chrome 17 on Windows bug
// Confirmed on Chrome 17 on Windows
// Once the first TypeError occurs, no further Dates can be created and manipulated
var i = 0, d;
while(true){
++i;
try{
d = new Date();
d.setHours(0,0,0,0);
}catch(e){
console.log(i);
dojo.date.compare = function(/*Date*/date1, /*Date?*/date2, /*String?*/portion){
// summary:
// Compare two date objects by date, time, or both.
// description:
// Returns 0 if equal, positive if a > b, else negative.
// date1:
// Date object
// date2:
// Date object. If not specified, the current Date is used.
// portion:
define({
plugins: [
{
module: "my/wire/authentication",
providers: [
["/foo", { module: "my/tests/wire/testProvider" }],
["/bar", { module: "my/tests/wire/testProvider" }]
]
}
],