code: function tfcsprite(file, enc, callback) {
      /*jshint validthis:true*/
  
      // Do nothing if no contents
      if (file.isNull()) {
        this.push(file);
        return callback();
      }
  
      if (file.isStream()) {
  
        // http://nodejs.org/api/stream.html
        // http://nodejs.org/api/child_process.html
        // https://github.com/dominictarr/event-stream
  
        // accepting streams is optional
        this.emit("error",
          new gutil.PluginError("gulp-tfcsprite", "Stream content is not supported"));
        return callback();
      }
  
      // check if file.contents is a `Buffer`
      if (file.isBuffer()) {
  
        var target = Path.relative(process.cwd(), file.path);
        var parsedPath = parsePath(target);
        var directory = parsedPath.dirname + '/' + param.sprites;
        var converted = new TFCSpriteConverter(
          target,
          directory,
          param.prefix
        ).convert();
  
  
        if (converted) {
          file.contents = new Buffer(converted);
        }
  
        this.push(file);
  
      }
      return callback();
    }
docs: see "Writing a plugin" https://github.com/gulpjs/gulp/blob/master/docs/writing-a-plugin/README.md