code: function processRule (rule) {
    pre: {
      if (typeof rule !== 'function' && typeof rule !== 'string') {
        (Array.isArray(rule) && rule[0]) || rule.name, "Validator name must be specified.";
      }
    }
    main: {
      if (typeof rule === 'string') {
        return exports.create(rule);
      }
      else if (typeof rule === 'function') {
        return new exports.Validator({
          validate: rule
        });
      }
      else if (Array.isArray(rule)) {
        return exports.create.apply(exports, rule);
      }
      else {
        return exports.create(rule.name, rule);
      }
    }
    post: {
      __result instanceof exports.Validator;
    }
  }
docs: Process a rule for a descriptor.
  
  @param  {Array|Function|Object} rule The validation rule, or inline function.
  @return {Validator}                  The validator instance.