rikukissa
1/18/2014 - 12:41 PM

gistfile1.coffee

fs = require 'fs'
es = require 'event-stream'
Transform = require('stream').Transform
PassThrough = require('stream').PassThrough

reverser = new Transform
reverser._transform = (data, encoding, done) ->
  this.push data.toString().split('').reverse().join ''
  done()

upperCaser = new Transform
upperCaser._transform = (data, encoding, done) ->
  this.push data.toString().toUpperCase()
  done()

textTransformer = ->
  passThrough = new PassThrough
  passThrough.pipe fs.createWriteStream 'package.json.backup'
  es.pipeline passThrough, reverser, upperCaser

fileReadStream = fs.createReadStream 'package.json'

fileReadStream
  .pipe(textTransformer())
  .pipe process.stdout