code: function (options) {
  
      options = _.assign({
          transformer: revision.defaultTransformer,
          hasher: revision.md5Hasher
      }, options);
  
      //Check options
      if (options.transformer && typeof options.transformer !== 'function') {
          throw 'Option "nameTransformer" must be a function.';
      }
  
      if (options.hasher && typeof options.hasher !== 'function') {
          throw 'Option "hasher" must be a function.';
      }
  
      //Initialize the hash storage
      var hashes = {};
  
      return through.obj(function (file, enc, cb) {
  
          if (file.isNull()) {
              cb(null, file);
  
              return;
          }
  
          if (file.isStream()) {
              cb(new gutil.PluginError('gulp-revision', 'Streaming is not supported.'));
  
              return;
          }
  
          //Transform the file name
          try {
              transform(file, options.transformer, options.hasher);
          } catch (error) {
              cb(new gutil.PluginError('gulp-revision', error));
  
              return;
          }
  
          //Store the hash
          hashes[file.revisionOldPath] = file.revisionHash;
  
          //Mark it as revisioned
          file.revisioned = true;
  
          cb(null, file);
  
      }, function (cb) {
  
          cb();
  
      });
  
  }
docs: The plugin