API Docs for: 0.2.0
Show:

File: lib/loader-patch.js

/*
 * Copyright (c) 2013, Yahoo! Inc.  All rights reserved.
 * Copyrights licensed under the New BSD License.
 * See the accompanying LICENSE file for terms.
 */

/*jslint node:true, nomen: true */

/**
Provides hooks to patch the YUI loader on both the server and/or client.
@module express-yui/lib/loader-patches
**/

'use strict';

/**
Provides hooks to patch the YUI loader on both the server and/or client.
It will facilitate try new things and patches without requiring to wait
for YUI to be released. Here is an example:

    app.yui.patch(require('express-yui/lib/patches/optional-requires'));

In the example above, one of the default patches shipped with with
`express-yui`, is executed on the server and client to patch the
YUI Loader to support a new type of metadata called `optionalRequires`,
which provides an easy way to define requirements for a module that are
not avialable in all runtimes.

@class loader-patch
@static
@extensionfor express-yui/lib/yui
*/
module.exports = {

    /**
    Adds patches that will be applied to the YUI instance
    before the initial `use` statement on the client side.

        app.yui.patchClient(require('express-yui/lib/patches/templates-requires'));

    @method patchClient
    @public
    @param {Function*} patch Each argument represent a patch to be applied to the client runtime
    **/
    patchClient: function () {
        var config  = this.config(),
            patches = config.patches;

        patches.push.apply(patches, arguments);
    },

    /**
    Adds patches that will be applied to the YUI instance
    before the initial `use` statement on the server side.

        app.yui.patchServer(require('express-yui/lib/patches/server-intl-get'));

    @method patchServer
    @public
    @param {Function*} patch Each argument represent a patch to be applied to the server runtime
    **/
    patchServer: function () {
        var patches = this._patches;
        patches.push.apply(patches, arguments);
    },

    /**
    Adds patches that will be applied to the YUI instance
    before the initial `use` statement on the server side and client.
    Here is an example of how to use this:

        app.yui.patch(require('express-yui/lib/patches/optional-requires'));

    @method patch
    @public
    @param {Function*} patch Each argument represent a patch to be applied
    **/
    patch: function () {
        this.patchClient.apply(this, arguments);
        this.patchServer.apply(this, arguments);
    }

};