Flooring towards zero code clarity/maintainability
Allow AMD module loader to set noGlobal in config to prevent moment polluting the global space.
Option has to be set ny the user otherwise everything loads as previously.

Loader would now look like this to choose noGlobal

/*jslint maxerr: 50, indent: 4, browser: true */

(function (global, undef) {
    "use strict";

    var projectString = "myProject",
        momentCDN = "//cdnjs.cloudflare.com/ajax/libs/moment.js/2.1.0/moment.min",
        momentString = "moment";

    (function (name, definition) {
        if (global.module !== undef && global.module.exports) {
            global.module.exports = definition(global.require(momentCDN));
        } else if (typeof global.define === "function" && global.define.amd) {
            var projectPaths = {};

            projectPaths[momentString] = momentCDN;
            global.require.config({
                paths: projectPaths
            });

            global.define(name, [momentString], definition);
        } else {
            global[name] = definition(global.moment);
        }
    }(projectString, function (moment) {
        delete global[momentString];

        moment.fn.newFunction = function () {
            // code
        };

        function MyFunction() {
            // code
        }

        return {
            "MyFunction": MyFunction,
            "momentPrivate": moment
        };
    }));
}(this));

requirejs(["myProject"], function (myProject) {
    "use strict";

    console.log("Private", myProject.momentPrivate);
    console.log("Global", window["moment"]);
});
Improved readability of expandFormat function

cleanup

Cleanup

Make jshint happy

Remove additional spaces
Merge branch 'expandFormat' of github.com:Xotic750/moment into expandFormat