-
Notifications
You must be signed in to change notification settings - Fork 13
smashingboxes/activerecord-diff
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Simple ActiveRecord diff functionality. Example usage: require 'active_record/diff' class User < ActiveRecord::Base include ActiveRecord::Diff end alice = User.create(:name => 'alice', :email_address => '[email protected]') bob = User.create(:name => 'bob', :email_address => '[email protected]') alice.diff?(bob) # => true alice.diff(bob) # => {:name => ['alice', 'bob'], :email_address => ['[email protected]', '[email protected]']} alice.diff({:name => 'eve'}) # => {:name => ['alice', 'eve']} Multiple objects can also be compared. Example: eve = User.create(:name => 'eve', :email_address => '[email protected]') alice.diff?([bob, eve]) # => true alice.diff([bob, eve]) # => { :name => ['alice', 'bob', 'eve'], :email_address => ['[email protected]', '[email protected]'] } 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. 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/ Contributions - Zachary Porter ( zporter )
About
Simple ActiveRecord diff functionality
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published