Utilities

$.wait {String}.format

by Adam Patridge

JavaScript

(function () {
    // Src: (Crockford, http://javascript.crockford.com/remedial.html [{String}.supplant])
    if (!String.prototype.format) {
        // param = {domain: 'valvion.com', media: 'http://media.valvion.com/'};
        // url = "{media}logo.gif".supplant(param);
        String.prototype.format = function (o) {
            return this.replace(/{([^{}]*)}/g,
                function (a, b) {
                    var r = o[b];
                    return typeof r === 'string' || typeof r === 'number' ? r : a;
                }
            );
        };
    }
} ());
$.extend({
    // Using jQuery deferreds to delay some function.
    // $.wait(delay).then(function() {...});
    // Src: (Bleigh, http://intridea.com/2011/2/8/fun-with-jquery-deferred?blog=company)
    wait: function (delay) {
        return $.Deferred(function (dfd) {
            setTimeout(dfd.resolve, delay);
        });
    }
});
$(function () {
    var delay = 2000;
    $("<p>").text("load").appendTo("body");
    $.wait(delay).then(function () {
        $("<p>").text("delayed {delay}ms".format({ delay: delay })).appendTo("body");
    });
});