public
Description: ActiveRecord diff functionality
Homepage:
Clone URL: git://github.com/tim/activerecord-diff.git
name age message
file README.txt Thu Apr 16 07:12:38 -0700 2009 Add CC0 paragraph. [tim]
directory lib/ Thu Apr 16 07:28:33 -0700 2009 Make test pass. [tim]
file test.rb Thu Apr 16 07:28:19 -0700 2009 Add test for attribute inclusion and exclusion. [tim]
README.txt
ActiveRecord diff functionality.

Quick start:

  require 'activerecord/diff'

  class User < ActiveRecord::Base
    include ActiveRecord::Diff
  end

  alice = User.create(:name => 'alice', :email_address => 'alice@example.org')

  bob = User.create(:name => 'bob', :email_address => 'bob@example.org')

  alice.diff?(bob)  # => true

  alice.diff(bob)  # => {:name => ['alice', 'bob'], :email_address => ['alice@example.org', 'bob@example.org']}

  alice.diff({:name => 'eve'})  # => {:name => ['alice', 'eve']}


By default, ActiveRecord::Base.content_columns is used to decide which attributes
to compare. You can include or exclude attributes from this as follows:

  class User < ActiveRecord::Base
    diff :include => [:id], :exclude => [:password_hash]
  end


Alternatively, you can specify exactly which columns to compare:

  class User < ActiveRecord::Base
    diff :id, :name, :email_address
  end


This is an updated version of the riff rails plugin (still available at
http://tfletcher.com/dev/rails-plugins).


To the extent possible under law, Tim Fletcher has waived all copyright and
related or neighboring rights to activerecord-diff. This work is published
from the United Kingdom. http://creativecommons.org/publicdomain/zero/1.0/