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