- 文字列の diff を取るライブラリを探そうとした
- 調べるのがめんどくさくなった
- 普通の diff(行の diff)も文字列の diff(1行内の diff)も原理的には同じだよね? diff コマンドでいんじゃね?
というわけで split して diff に渡してみました。
# -*- coding: utf-8 -*- def write(file, str) open(file, "w"){|f| f.puts str.split(//) } end file_a = "str_diff_a.txt" file_b = "str_diff_b.txt" write(file_a, "..B.C.") write(file_b, ".A..D.") puts `diff -u #{file_a} #{file_b}`
$ ruby -v ruby 1.9.2p180 (2011-02-18 revision 30909) [i686-linux] -------------------------------- $ cat str_diff_a.txt . . B . C . -------------------------------- $ cat str_diff_b.txt . A . . D . -------------------------------- $ ruby str-diff.rb --- str_diff_a.txt 2012-02-16 22:00:37.223144895 +0900 +++ str_diff_b.txt 2012-02-16 22:00:37.223144895 +0900 @@ -1,6 +1,6 @@ . +A . -B . -C +D .
めんどくさいときはこれでいいかも。