cloudhead/vows — pull request #267 by coltrane (2013-02-25 22:00:38+00:00)
Title: use node-glob instead of wildcard for better pattern support

node-glob "is a glob implementation in JavaScript. It uses the minimatch library to do its matching."

This commit replaces "wildcard.js" with the equivalent (but more standardized, and full-featured) functionality from node-glob. This allows vows to be called, for example, like this:
`vows --spec 'test/**/test-*.js'`

Unlike the original wildcard functionality, the `**` in the above pattern will now match all `test-*.js` files in *all* subdirectories of `test/` *recursively* (not just direct children of `test/`). Numerous other nice features are supported as well -- see node-glob, and minimatch for details.

**Note 1:** this has not been tested on windows. Node-glob is reported to work on windows, but does include some caveats with regards to use of `\` as a path separator. If this proves to be an issue, it could probably be addressed by simply replacing all backslashes with forward-slashes before calling glob.

**Note 2:** if anyone is relying specifically on the old non-recursive behavior of `**`, then this change will break them (though the fix would be trivial). Also, the glob package is sensitive to a number of other special chars that "wildcard.js" was not sensitive to. (see [minimatch](https://github.com/isaacs/minimatch) for specifics). Any special char can be escaped with a `\` to preserve its literal value.