public
Description: Merge 2 ActiveRecords, preserving attributes, associations and counters
Homepage:
Clone URL: git://github.com/grosser/ar_merge.git
name age message
file README.markdown Sun Nov 22 00:29:23 -0800 2009 gemcutter is default now hurray [grosser]
file Rakefile Sun Nov 22 00:29:23 -0800 2009 gemcutter is default now hurray [grosser]
file VERSION Sun Dec 13 02:20:26 -0800 2009 Version bump to 0.1.3 [grosser]
file ar_merge.gemspec Sun Dec 13 02:20:29 -0800 2009 Regenerated gemspec for version 0.1.3 [grosser]
file init.rb Sun Dec 21 23:44:24 -0800 2008 its a gem AND plugin now :D [grosser]
directory lib/ Sun Dec 13 02:17:36 -0800 2009 preparing for Rails 3 [grosser]
directory spec/ Tue Nov 17 12:51:22 -0800 2009 make spec to spectask, to work nicely with CI s... [grosser]
README.markdown
  • Merges associations/attributes you want
  • Can merge duplicates
  • Protects from self-merges
  • Keeps counters valid
  • Removes merged record

INSTALL

Rails plugin

script/plugin install git://github.com/grosser/ar_merge.git

OR Gem

sudo gem install ar_merge

USAGE

Merge from outside the model:

user.merge!(other,:attributes=>user.attributes.keys,:associations=>%w[movies friends])`

Merge from inside the model

User < ActiveRecord::Base
  def merge!(other)
    super(other,:attributes=>%w[email website])
  end
end

Merge duplicates

#merge all new users, that have the same email
User.merge_duplicates!(User.find_all_by_status('new')) , :compare=>:email)

AUTHOR

Michael Grosser
grosser.michael@gmail.com Hereby placed under public domain, do what you want, just do not hold me accountable...