Created
August 16, 2012 17:08
-
-
Save spikebrehm/3371740 to your computer and use it in GitHub Desktop.
Require not exported to the window?
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
... | |
bundle = browserify() | |
bundle.addEntry('./assets/coffeescripts/lib/renderer.coffee') | |
src = bundle.bundle() | |
fs.writeFileSync @config.coffeePath, src, 'utf8' | |
... |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(function(){var require = function (file, cwd) { | |
var resolved = require.resolve(file, cwd || '/'); | |
var mod = require.modules[resolved]; | |
if (!mod) throw new Error( | |
'Failed to resolve module ' + file + ', tried ' + resolved | |
); | |
var cached = require.cache[resolved]; | |
var res = cached? cached.exports : mod(); | |
return res; | |
}; | |
require.paths = []; | |
require.modules = {}; | |
require.cache = {}; | |
require.extensions = [".js",".coffee"]; | |
require._core = { | |
'assert': true, | |
'events': true, | |
'fs': true, | |
'path': true, | |
'vm': true | |
}; | |
require.resolve = (function () { | |
return function (x, cwd) { | |
if (!cwd) cwd = '/'; | |
if (require._core[x]) return x; | |
var path = require.modules.path(); | |
cwd = path.resolve('/', cwd); | |
var y = cwd || '/'; | |
if (x.match(/^(?:\.\.?\/|\/)/)) { | |
var m = loadAsFileSync(path.resolve(y, x)) | |
|| loadAsDirectorySync(path.resolve(y, x)); | |
if (m) return m; | |
} | |
var n = loadNodeModulesSync(x, y); | |
if (n) return n; | |
throw new Error("Cannot find module '" + x + "'"); | |
function loadAsFileSync (x) { | |
x = path.normalize(x); | |
if (require.modules[x]) { | |
return x; | |
} | |
for (var i = 0; i < require.extensions.length; i++) { | |
var ext = require.extensions[i]; | |
if (require.modules[x + ext]) return x + ext; | |
} | |
} | |
function loadAsDirectorySync (x) { | |
x = x.replace(/\/+$/, ''); | |
var pkgfile = path.normalize(x + '/package.json'); | |
if (require.modules[pkgfile]) { | |
var pkg = require.modules[pkgfile](); | |
var b = pkg.browserify; | |
if (typeof b === 'object' && b.main) { | |
var m = loadAsFileSync(path.resolve(x, b.main)); | |
if (m) return m; | |
} | |
else if (typeof b === 'string') { | |
var m = loadAsFileSync(path.resolve(x, b)); | |
if (m) return m; | |
} | |
else if (pkg.main) { | |
var m = loadAsFileSync(path.resolve(x, pkg.main)); | |
if (m) return m; | |
} | |
} | |
return loadAsFileSync(x + '/index'); | |
} | |
function loadNodeModulesSync (x, start) { | |
var dirs = nodeModulesPathsSync(start); | |
for (var i = 0; i < dirs.length; i++) { | |
var dir = dirs[i]; | |
var m = loadAsFileSync(dir + '/' + x); | |
if (m) return m; | |
var n = loadAsDirectorySync(dir + '/' + x); | |
if (n) return n; | |
} | |
var m = loadAsFileSync(x); | |
if (m) return m; | |
} | |
function nodeModulesPathsSync (start) { | |
var parts; | |
if (start === '/') parts = [ '' ]; | |
else parts = path.normalize(start).split('/'); | |
var dirs = []; | |
for (var i = parts.length - 1; i >= 0; i--) { | |
if (parts[i] === 'node_modules') continue; | |
var dir = parts.slice(0, i + 1).join('/') + '/node_modules'; | |
dirs.push(dir); | |
} | |
return dirs; | |
} | |
}; | |
})(); | |
require.alias = function (from, to) { | |
var path = require.modules.path(); | |
var res = null; | |
try { | |
res = require.resolve(from + '/package.json', '/'); | |
} | |
catch (err) { | |
res = require.resolve(from, '/'); | |
} | |
var basedir = path.dirname(res); | |
var keys = (Object.keys || function (obj) { | |
var res = []; | |
for (var key in obj) res.push(key); | |
return res; | |
})(require.modules); | |
for (var i = 0; i < keys.length; i++) { | |
var key = keys[i]; | |
if (key.slice(0, basedir.length + 1) === basedir + '/') { | |
var f = key.slice(basedir.length); | |
require.modules[to + f] = require.modules[basedir + f]; | |
} | |
else if (key === basedir) { | |
require.modules[to] = require.modules[basedir]; | |
} | |
} | |
}; | |
(function () { | |
var process = {}; | |
require.define = function (filename, fn) { | |
if (require.modules.__browserify_process) { | |
process = require.modules.__browserify_process(); | |
} | |
var dirname = require._core[filename] | |
? '' | |
: require.modules.path().dirname(filename) | |
; | |
var require_ = function (file) { | |
var requiredModule = require(file, dirname); | |
var cached = require.cache[require.resolve(file, dirname)]; | |
if (cached && cached.parent === null) { | |
cached.parent = module_; | |
} | |
return requiredModule; | |
}; | |
require_.resolve = function (name) { | |
return require.resolve(name, dirname); | |
}; | |
require_.modules = require.modules; | |
require_.define = require.define; | |
require_.cache = require.cache; | |
var module_ = { | |
id : filename, | |
filename: filename, | |
exports : {}, | |
loaded : false, | |
parent: null | |
}; | |
require.modules[filename] = function () { | |
require.cache[filename] = module_; | |
fn.call( | |
module_.exports, | |
require_, | |
module_, | |
module_.exports, | |
dirname, | |
filename, | |
process | |
); | |
module_.loaded = true; | |
return module_.exports; | |
}; | |
}; | |
})(); | |
require.define("path",function(require,module,exports,__dirname,__filename,process){function filter (xs, fn) { | |
var res = []; | |
for (var i = 0; i < xs.length; i++) { | |
if (fn(xs[i], i, xs)) res.push(xs[i]); | |
} | |
return res; | |
} | |
// resolves . and .. elements in a path array with directory names there | |
// must be no slashes, empty elements, or device names (c:\) in the array | |
// (so also no leading and trailing slashes - it does not distinguish | |
// relative and absolute paths) | |
function normalizeArray(parts, allowAboveRoot) { | |
// if the path tries to go above the root, `up` ends up > 0 | |
var up = 0; | |
for (var i = parts.length; i >= 0; i--) { | |
var last = parts[i]; | |
if (last == '.') { | |
parts.splice(i, 1); | |
} else if (last === '..') { | |
parts.splice(i, 1); | |
up++; | |
} else if (up) { | |
parts.splice(i, 1); | |
up--; | |
} | |
} | |
// if the path is allowed to go above the root, restore leading ..s | |
if (allowAboveRoot) { | |
for (; up--; up) { | |
parts.unshift('..'); | |
} | |
} | |
return parts; | |
} | |
// Regex to split a filename into [*, dir, basename, ext] | |
// posix version | |
var splitPathRe = /^(.+\/(?!$)|\/)?((?:.+?)?(\.[^.]*)?)$/; | |
// path.resolve([from ...], to) | |
// posix version | |
exports.resolve = function() { | |
var resolvedPath = '', | |
resolvedAbsolute = false; | |
for (var i = arguments.length; i >= -1 && !resolvedAbsolute; i--) { | |
var path = (i >= 0) | |
? arguments[i] | |
: process.cwd(); | |
// Skip empty and invalid entries | |
if (typeof path !== 'string' || !path) { | |
continue; | |
} | |
resolvedPath = path + '/' + resolvedPath; | |
resolvedAbsolute = path.charAt(0) === '/'; | |
} | |
// At this point the path should be resolved to a full absolute path, but | |
// handle relative paths to be safe (might happen when process.cwd() fails) | |
// Normalize the path | |
resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) { | |
return !!p; | |
}), !resolvedAbsolute).join('/'); | |
return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; | |
}; | |
// path.normalize(path) | |
// posix version | |
exports.normalize = function(path) { | |
var isAbsolute = path.charAt(0) === '/', | |
trailingSlash = path.slice(-1) === '/'; | |
// Normalize the path | |
path = normalizeArray(filter(path.split('/'), function(p) { | |
return !!p; | |
}), !isAbsolute).join('/'); | |
if (!path && !isAbsolute) { | |
path = '.'; | |
} | |
if (path && trailingSlash) { | |
path += '/'; | |
} | |
return (isAbsolute ? '/' : '') + path; | |
}; | |
// posix version | |
exports.join = function() { | |
var paths = Array.prototype.slice.call(arguments, 0); | |
return exports.normalize(filter(paths, function(p, index) { | |
return p && typeof p === 'string'; | |
}).join('/')); | |
}; | |
exports.dirname = function(path) { | |
var dir = splitPathRe.exec(path)[1] || ''; | |
var isWindows = false; | |
if (!dir) { | |
// No dirname | |
return '.'; | |
} else if (dir.length === 1 || | |
(isWindows && dir.length <= 3 && dir.charAt(1) === ':')) { | |
// It is just a slash or a drive letter with a slash | |
return dir; | |
} else { | |
// It is a full dirname, strip trailing slash | |
return dir.substring(0, dir.length - 1); | |
} | |
}; | |
exports.basename = function(path, ext) { | |
var f = splitPathRe.exec(path)[2] || ''; | |
// TODO: make this comparison case-insensitive on windows? | |
if (ext && f.substr(-1 * ext.length) === ext) { | |
f = f.substr(0, f.length - ext.length); | |
} | |
return f; | |
}; | |
exports.extname = function(path) { | |
return splitPathRe.exec(path)[3] || ''; | |
}; | |
}); | |
require.define("__browserify_process",function(require,module,exports,__dirname,__filename,process){var process = module.exports = {}; | |
process.nextTick = (function () { | |
var queue = []; | |
var canPost = typeof window !== 'undefined' | |
&& window.postMessage && window.addEventListener | |
; | |
if (canPost) { | |
window.addEventListener('message', function (ev) { | |
if (ev.source === window && ev.data === 'browserify-tick') { | |
ev.stopPropagation(); | |
if (queue.length > 0) { | |
var fn = queue.shift(); | |
fn(); | |
} | |
} | |
}, true); | |
} | |
return function (fn) { | |
if (canPost) { | |
queue.push(fn); | |
window.postMessage('browserify-tick', '*'); | |
} | |
else setTimeout(fn, 0); | |
}; | |
})(); | |
process.title = 'browser'; | |
process.browser = true; | |
process.env = {}; | |
process.argv = []; | |
process.binding = function (name) { | |
if (name === 'evals') return (require)('vm') | |
else throw new Error('No such module. (Possibly not yet loaded)') | |
}; | |
(function () { | |
var cwd = '/'; | |
var path; | |
process.cwd = function () { return cwd }; | |
process.chdir = function (dir) { | |
if (!path) path = require('path'); | |
cwd = path.resolve(dir, cwd); | |
}; | |
})(); | |
}); | |
require.define("vm",function(require,module,exports,__dirname,__filename,process){module.exports = require("vm-browserify")}); | |
require.define("/node_modules/vm-browserify/package.json",function(require,module,exports,__dirname,__filename,process){module.exports = {"main":"index.js"}}); | |
require.define("/node_modules/vm-browserify/index.js",function(require,module,exports,__dirname,__filename,process){var Object_keys = function (obj) { | |
if (Object.keys) return Object.keys(obj) | |
else { | |
var res = []; | |
for (var key in obj) res.push(key) | |
return res; | |
} | |
}; | |
var forEach = function (xs, fn) { | |
if (xs.forEach) return xs.forEach(fn) | |
else for (var i = 0; i < xs.length; i++) { | |
fn(xs[i], i, xs); | |
} | |
}; | |
var Script = exports.Script = function NodeScript (code) { | |
if (!(this instanceof Script)) return new Script(code); | |
this.code = code; | |
}; | |
Script.prototype.runInNewContext = function (context) { | |
if (!context) context = {}; | |
var iframe = document.createElement('iframe'); | |
if (!iframe.style) iframe.style = {}; | |
iframe.style.display = 'none'; | |
document.body.appendChild(iframe); | |
var win = iframe.contentWindow; | |
forEach(Object_keys(context), function (key) { | |
win[key] = context[key]; | |
}); | |
if (!win.eval && win.execScript) { | |
// win.eval() magically appears when this is called in IE: | |
win.execScript('null'); | |
} | |
var res = win.eval(this.code); | |
forEach(Object_keys(win), function (key) { | |
context[key] = win[key]; | |
}); | |
document.body.removeChild(iframe); | |
return res; | |
}; | |
Script.prototype.runInThisContext = function () { | |
return eval(this.code); // maybe... | |
}; | |
Script.prototype.runInContext = function (context) { | |
// seems to be just runInNewContext on magical context objects which are | |
// otherwise indistinguishable from objects except plain old objects | |
// for the parameter segfaults node | |
return this.runInNewContext(context); | |
}; | |
forEach(Object_keys(Script.prototype), function (name) { | |
exports[name] = Script[name] = function (code) { | |
var s = Script(code); | |
return s[name].apply(s, [].slice.call(arguments, 1)); | |
}; | |
}); | |
exports.createScript = function (code) { | |
return exports.Script(code); | |
}; | |
exports.createContext = Script.createContext = function (context) { | |
// not really sure what this one does | |
// seems to just make a shallow copy | |
var copy = {}; | |
if(typeof context === 'object') { | |
forEach(Object_keys(context), function (key) { | |
copy[key] = context[key]; | |
}); | |
} | |
return copy; | |
}; | |
}); | |
require.define("/assets/coffeescripts/lib/handlebars.coffee",function(require,module,exports,__dirname,__filename,process){(function() { | |
var Handlebars, handlebarsTemplate; | |
handlebarsTemplate = require('../../../node_modules/handlebars/lib/handlebars/runtime'); | |
Handlebars = require('../../../node_modules/handlebars/lib/handlebars/base'); | |
module.exports = Handlebars; | |
}).call(this); | |
}); | |
require.define("/node_modules/handlebars/lib/handlebars/runtime.js",function(require,module,exports,__dirname,__filename,process){var Handlebars = require("./base"); | |
// BEGIN(BROWSER) | |
Handlebars.VM = { | |
template: function(templateSpec) { | |
// Just add water | |
var container = { | |
escapeExpression: Handlebars.Utils.escapeExpression, | |
invokePartial: Handlebars.VM.invokePartial, | |
programs: [], | |
program: function(i, fn, data) { | |
var programWrapper = this.programs[i]; | |
if(data) { | |
return Handlebars.VM.program(fn, data); | |
} else if(programWrapper) { | |
return programWrapper; | |
} else { | |
programWrapper = this.programs[i] = Handlebars.VM.program(fn); | |
return programWrapper; | |
} | |
}, | |
programWithDepth: Handlebars.VM.programWithDepth, | |
noop: Handlebars.VM.noop | |
}; | |
return function(context, options) { | |
options = options || {}; | |
return templateSpec.call(container, Handlebars, context, options.helpers, options.partials, options.data); | |
}; | |
}, | |
programWithDepth: function(fn, data, $depth) { | |
var args = Array.prototype.slice.call(arguments, 2); | |
return function(context, options) { | |
options = options || {}; | |
return fn.apply(this, [context, options.data || data].concat(args)); | |
}; | |
}, | |
program: function(fn, data) { | |
return function(context, options) { | |
options = options || {}; | |
return fn(context, options.data || data); | |
}; | |
}, | |
noop: function() { return ""; }, | |
invokePartial: function(partial, name, context, helpers, partials, data) { | |
var options = { helpers: helpers, partials: partials, data: data }; | |
if(partial === undefined) { | |
throw new Handlebars.Exception("The partial " + name + " could not be found"); | |
} else if(partial instanceof Function) { | |
return partial(context, options); | |
} else if (!Handlebars.compile) { | |
throw new Handlebars.Exception("The partial " + name + " could not be compiled when running in runtime-only mode"); | |
} else { | |
partials[name] = Handlebars.compile(partial); | |
return partials[name](context, options); | |
} | |
} | |
}; | |
Handlebars.template = Handlebars.VM.template; | |
// END(BROWSER) | |
}); | |
require.define("/node_modules/handlebars/lib/handlebars/base.js",function(require,module,exports,__dirname,__filename,process){// BEGIN(BROWSER) | |
/*jshint eqnull:true*/ | |
this.Handlebars = {}; | |
(function(Handlebars) { | |
Handlebars.VERSION = "1.0.rc.1"; | |
Handlebars.helpers = {}; | |
Handlebars.partials = {}; | |
Handlebars.registerHelper = function(name, fn, inverse) { | |
if(inverse) { fn.not = inverse; } | |
this.helpers[name] = fn; | |
}; | |
Handlebars.registerPartial = function(name, str) { | |
this.partials[name] = str; | |
}; | |
Handlebars.registerHelper('helperMissing', function(arg) { | |
if(arguments.length === 2) { | |
return undefined; | |
} else { | |
throw new Error("Could not find property '" + arg + "'"); | |
} | |
}); | |
var toString = Object.prototype.toString, functionType = "[object Function]"; | |
Handlebars.registerHelper('blockHelperMissing', function(context, options) { | |
var inverse = options.inverse || function() {}, fn = options.fn; | |
var ret = ""; | |
var type = toString.call(context); | |
if(type === functionType) { context = context.call(this); } | |
if(context === true) { | |
return fn(this); | |
} else if(context === false || context == null) { | |
return inverse(this); | |
} else if(type === "[object Array]") { | |
if(context.length > 0) { | |
for(var i=0, j=context.length; i<j; i++) { | |
ret = ret + fn(context[i]); | |
} | |
} else { | |
ret = inverse(this); | |
} | |
return ret; | |
} else { | |
return fn(context); | |
} | |
}); | |
Handlebars.K = function() {}; | |
Handlebars.createFrame = Object.create || function(object) { | |
Handlebars.K.prototype = object; | |
var obj = new Handlebars.K(); | |
Handlebars.K.prototype = null; | |
return obj; | |
}; | |
Handlebars.registerHelper('each', function(context, options) { | |
var fn = options.fn, inverse = options.inverse; | |
var ret = "", data; | |
if (options.data) { | |
data = Handlebars.createFrame(options.data); | |
} | |
if(context && context.length > 0) { | |
for(var i=0, j=context.length; i<j; i++) { | |
if (data) { data.index = i; } | |
ret = ret + fn(context[i], { data: data }); | |
} | |
} else { | |
ret = inverse(this); | |
} | |
return ret; | |
}); | |
Handlebars.registerHelper('if', function(context, options) { | |
var type = toString.call(context); | |
if(type === functionType) { context = context.call(this); } | |
if(!context || Handlebars.Utils.isEmpty(context)) { | |
return options.inverse(this); | |
} else { | |
return options.fn(this); | |
} | |
}); | |
Handlebars.registerHelper('unless', function(context, options) { | |
var fn = options.fn, inverse = options.inverse; | |
options.fn = inverse; | |
options.inverse = fn; | |
return Handlebars.helpers['if'].call(this, context, options); | |
}); | |
Handlebars.registerHelper('with', function(context, options) { | |
return options.fn(context); | |
}); | |
Handlebars.registerHelper('log', function(context) { | |
Handlebars.log(context); | |
}); | |
}(this.Handlebars)); | |
// END(BROWSER) | |
module.exports = this.Handlebars; | |
}); | |
require.define("/assets/coffeescripts/lib/utils.coffee",function(require,module,exports,__dirname,__filename,process){(function() { | |
var helpers, | |
__hasProp = {}.hasOwnProperty; | |
helpers = require('./../helpers/all'); | |
module.exports = { | |
registerHelpers: function(Handlebars) { | |
var fn, name, _results; | |
_results = []; | |
for (name in helpers) { | |
if (!__hasProp.call(helpers, name)) continue; | |
fn = helpers[name]; | |
_results.push(Handlebars.registerHelper(name, fn)); | |
} | |
return _results; | |
} | |
}; | |
}).call(this); | |
}); | |
require.define("/assets/coffeescripts/helpers/all.coffee",function(require,module,exports,__dirname,__filename,process){(function() { | |
var i18n; | |
i18n = require('./../lib/i18n'); | |
module.exports = { | |
upcase: function(str) { | |
return str.toUpperCase(); | |
}, | |
t: function(key) { | |
return i18n.t(key); | |
} | |
}; | |
}).call(this); | |
}); | |
require.define("/assets/coffeescripts/lib/i18n.coffee",function(require,module,exports,__dirname,__filename,process){(function() { | |
module.exports = { | |
t: function(key) { | |
return "" + key + "-translated"; | |
} | |
}; | |
}).call(this); | |
}); | |
require.define("/assets/coffeescripts/lib/base_presenter.coffee",function(require,module,exports,__dirname,__filename,process){(function() { | |
var BasePresenter; | |
module.exports = BasePresenter = (function() { | |
function BasePresenter() {} | |
BasePresenter.prototype.render = function(data) { | |
return data; | |
}; | |
return BasePresenter; | |
})(); | |
}).call(this); | |
}); | |
require.define("/assets/coffeescripts/lib/renderer.coffee",function(require,module,exports,__dirname,__filename,process){(function() { | |
var BasePresenter, Handlebars, Renderer, utils; | |
Handlebars = require('./handlebars'); | |
utils = require('./utils'); | |
BasePresenter = require('./base_presenter'); | |
module.exports = Renderer = (function() { | |
function Renderer(templates, presenters) { | |
this.templates = templates; | |
this.presenters = presenters; | |
utils.registerHelpers(Handlebars); | |
} | |
Renderer.prototype.render = function(viewName, data, cb) { | |
var presenter, view; | |
view = this.getView(viewName); | |
presenter = new view.presenter(); | |
return view.template(presenter.render(data)); | |
}; | |
Renderer.prototype.getView = function(viewName) { | |
return { | |
template: this.templates[viewName], | |
presenter: this.presenters[viewName] | |
}; | |
}; | |
return Renderer; | |
})(); | |
}).call(this); | |
}); | |
require("/assets/coffeescripts/lib/renderer.coffee"); | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment