Prepares specifications for schematics.


Since Processors interact directly with Crystal, they must be written in JavaScript and/or CoffeeScript.

Processors update Specifications to meet the requirements of Schematics.

This allows more control and flexibility of your input. Some examples include:

  • manipulating data to add/remove data from a Specification
  • adding contents from a file to a Specification


In this example, a Schematic for routes expects an object of objects. Each object has a key which is used as the filename of each route. If an object doesn't have a URI value, it uses the key/name as the URI:

module.exports = function(val) {
  for (var name in val) {
    if (!val[name].uri) {
      val[name].uri = '/' + name;
  return val;