Skip to content

Instantly share code, notes, and snippets.

@mahonnaise
mahonnaise / ns.js
Created September 6, 2012 06:56
simple namespacing
window.ns = function (namespace) {
var names = namespace.split('.'), name, i, obj = window;
for (i = 0; i < names.length; i++) {
name = names[i];
if (!obj[name]) {
obj[name] = {};
}
obj = obj[name];
}
return obj;
@mahonnaise
mahonnaise / rule-test-template.js
Created May 21, 2012 02:34
CSS Lint rule test template
/*global YUITest, CSSLint*/
(function () {
var ruleId = 'width-must-be-100px', expectWarning, expectPass;
expectWarning = function (ruleset, expectedMessage) {
var result, enabledRules = {};
enabledRules[ruleId] = 1;
result = CSSLint.verify(ruleset, enabledRules);
YUITest.Assert.areEqual(1, result.messages.length);
@mahonnaise
mahonnaise / sprintf.js
Created June 8, 2011 04:38
sprintf utility function
var sprintf = function (text) {
var i = 1, args = arguments;
return text.replace(/%(0)?(\d*)?\.?(\d*)?(s|f)/g, function (pattern) {
var a = arguments,
precision = +a[3],
value = args[i++],
padSize = +a[2] - (~~value).toString().length,
padding = padSize > 0 ? (new Array(padSize + 1).join(a[1] || ' ')) : '';
return padding + (a[4] === 'f' && a[3] ? value.toFixed(+precision) : value);
});