Build JavaScript with ANT and YUICompressor

APE uses a build process to copy files from /src to /build

Rollups

Rollups are generated by using the ANT <concat> task.

Packaging

APE Packages are based on narrowly-scoped modules. Modules offer a narrower scope that has only very closely related functionlity (scope is created with a closure). Because of their smaller scope, modules are easier to test than entire packages.

Modules of a package use the Exporting Pattern to add their functions to that package. Each module declares its Package using APE.namespace(). This makes it possible to unit test the modules.

ANT filterchain

Only one APE.namespace() call is needed per package. A Package can contain many modules, so the extra unneeded namespace() calls are stripped out using a <filterchain> inside a <concat> task.

As a result of the build process, APE.namespace() is only called once for each package.

Result

The resulting rollup ape-ep-dom.js consists of several modules but has a total of one APE.namespace() call for one package (APE.dom).

The ANT Build File.