riff plugin
オブジェクトの差分を出してくれるプラグイン
ruby script/plugin install http://tfletcher.com/svn/rails-plugins/riff/
でインストール
例えば、XとYというクラスがあった場合に、
class X < ActiveRecord::Base diff 'a1', 'a2' end class Y < ActiveRecord::Base diff 'a1', 'a2' end
という風に定義してあったら、
>> x = X.new(:a1 => 'abc', :a2 => 3, :a3 => true, :a4 => Time.now) >> y = Y.new(:a1 => 'ABC', :a2 => 3, :a3 => false, :a5 => "http://localhost:3000") >> x.diff(y) => {:a1 => ['abc', 'ABC'] } >> y.a2 = 5 >> x.diff(y) => {:a1 => ['abc', 'ABC'], :a2 => [3, 5] } >> x.diff?(y) => true >> x.diff(x) => {} >> x.diff?(x) => false
という風に返してくれます。違うクラスのオブジェクトでも比較できるのは便利。