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 } ]
*********
ざんまい
+ かずどん
+ まるとも
- かずすけ
まるたか