8月 042014
wikiが更新されるごとにhubotに本文を送って、更新の差分だけslackに通知したかったのでテキストのdiffを取った
https://www.npmjs.org/package/diff
% npm i diff
diff = require 'diff' str_a = """ ざんまい かずすけ まるたか """ str_b = """ ざんまい かずどん まるとも まるたか """ result = diff.diffLines str_a, str_b console.log result console.log "*********" for block in result prefix = switch when block.added then "+" when block.removed then "-" else " " for line in block.value.trim().split(/[\r\n]+/) console.log "#{prefix} #{line}"
行ごとじゃなくて追加されたブロックごとの配列で結果が返ってくる
[ { value: 'ざんまい\n', added: undefined, removed: undefined }, { value: 'かずどん\nまるとも\n', added: true, removed: undefined }, { value: 'かずすけ\n', added: undefined, removed: true }, { value: 'まるたか', added: undefined, removed: undefined } ] ********* ざんまい + かずどん + まるとも - かずすけ まるたか