Skip to content

Instantly share code, notes, and snippets.

View arkitrave's full-sized avatar

Eric Shepherd arkitrave

View GitHub Profile
Date.prototype.beginningOfWeek = function () {
return new Date(this - ((this.getDay() - (arguments[0] || 0)) * 86400000));
}
// Gets the location in a grid of objects by numbered row and lettered column
// Example: 5C is the 5th row, 3rd column
getGridLocation = function($el) {
var $items = $el.find('.item:visible'),
index = $items.index($el),
lefts = [],
tops = [];
$items.each(function() {
var $item = $(this),
@arkitrave
arkitrave / template-compare.js
Created February 14, 2011 18:51
Comparison of templated vs. non-templated HTML rendering
// Rendering markup with loops and string concatenation
for (var i = 0; i < foo.name.length; i++) {
content += '<li><a href="foo/' + foo.id[i] + '">' + foo.name[i] + '</a></li>';
}
// Rendering with a JavaScript template
content = '{{#foo}}' +
'<li><a href="foo/${id}">${name}</a></li>' +
'{{/foo}}';
handlebars : {
cache: [],
render : function (name, template, content, context, callback) {
try {
if (!cache[name]) {
cache[name] = Handlebars.compile(template);
}
callback(cache[name](content, context));
} catch (e) {
// console.log('Could not render. Handlebars might not be installed');
Gilt.Template.register('baz', '<div class="foo">' +
'<div class="foo-image">' +
'<img src="{{images/0}}" fullsrc="{{images/0}}" alt="{{{title}}}" />' +
'</div>' +
'<div class="foo-text">' +
'<h1>{{{brand_name}}}</h1>' +
'<h2>{{{title}}}</h2>' +
'</div>' +
'</div>',
{ version : 'bar' }
@arkitrave
arkitrave / template-blog-3.js
Created February 14, 2011 19:00
Step Three
Gilt.Template.render(
'baz', // The name of this feed or template type
data[0], // The data object to render
function(html) { // The callback function
Gilt.Notify.publish('feedTemplated', [html]);
},
{ version : 'bar' } // Options, in this case an alternate version
);
/* FOR REFERENCE PURPOSES ONLY. CODE IS AUTHORED BY KEVAN DAVIS, COPYRIGHT 2010-2014 GILT GROUPE. */
/*jshint asi: false, bitwise: true, boss: false, curly: true, eqeqeq: true, eqnull: false, evil: false, forin: false, immed: true, laxbreak: false, newcap: true, noarg: true, noempty: true, nonew: false, nomen: false, onevar: true, plusplus: false, regexp: false, undef: true, sub: false, strict: false, white: false */
/*jshint browser: true, maxerr: 50, passfail: false */
/*global define: false */
/**
* requirejs wrapper
*
* will use either requirejs or global variables based on several factors,
/* less than 480px
_______
/_ __(_)___ __ __
/ / / / __ \/ / / /
/ / / / / / / /_/ /
/_/ /_/_/ /_/\__, /
/____/
*/
@media (max-width: @layout-tiny-max) {
@arkitrave
arkitrave / A functional JS secret santa generator
Last active October 9, 2015 18:45
Secret Santa generator
function secretSantaGenerator (num) {
var participants = _.shuffle(_.range(1, num));
return _.map(participants, function (val, index, list) {
return [
val,
list[index + 1] ? list[index + 1] : list[0]
];
});
}
foo = 'abc';
console.log(foo.length);
console.log(0.1+0.2);
//////////
var foo = {};
console.log('------ foo');