Mongoid Genesis =============== [![Build Status](https://secure.travis-ci.org/demarque/mongoid-genesis.png?branch=master)](http://travis-ci.org/demarque/mongoid-genesis) Mongoid Genesis will give you the ability to override data in your model without losing the initial data. Install ------- ``` gem install mongoid-genesis ``` Rails 3 ------- In your Gemfile: ```ruby gem 'mongoid-genesis' ``` Usage ----- Mongoid Genesis is compatible with any mongoid collection or embedded object. **Model integration** ```ruby class Book include Mongoid::Document include Mongoid::Genesis end ``` This will create an embedded object that will store the original data. **Basic structure** ```ruby book = Book.new(:title => 'Art of war', :author => 'Sun Tzu') #=> # book.genesis #=> # ``` **Preserve the original attribute** ```ruby book.write_and_preserve_attribute(:author, 'Sun Zi') #=> # book.genesis #=> # ``` **After preserving the original attribute, it will not be overwritten** ```ruby book.write_and_preserve_attribute(:author, 'Sun Wu') #=> # book.genesis #=> # ``` **You can restore the original attribute** ```ruby book.restore_genesis(:author) #=> # book.genesis #=> # ``` **To update the original document without losing the current state** ```ruby book.write_and_preserve_attribute(:title, 'The Art of Peace') book.reverse_genesis #=> # #=> # book.title = "The Art of War : Revisited" book.reverse_genesis #=> # #=> # ``` Copyright --------- Copyright (c) 2012 De Marque inc. See LICENSE for further details.