Sha256: 7d5728b8f25e7ed6edf2b9e663e0ae364289601c284f1fd82bbe3a5c6f0e7084
Contents?: true
Size: 1.04 KB
Versions: 2
Compression:
Stored size: 1.04 KB
Contents
# encoding: utf-8 module Mongoid #:nodoc: # Include this module to get automatic versioning of root level documents. # This will add a version field to the +Document+ and a has_many association # with all the versions contained in it. module Versioning extend ActiveSupport::Concern included do field :version, :type => Integer, :default => 1 embeds_many :versions, :class_name => self.name set_callback :save, :before, :revise end module InstanceMethods # Create a new version of the +Document+. This will load the previous # document from the database and set it as the next version before saving # the current document. It then increments the version number. def revise last_version = self.class.first(:conditions => { :_id => id, :version => version }) if last_version self.versions << last_version.clone self.version = version + 1 @modifications["versions"] = [ nil, @attributes["versions"] ] if @modifications end end end end end
Version data entries
2 entries across 2 versions & 2 rubygems
Version | Path |
---|---|
chhean-mongoid-2.0.1.beta1 | lib/mongoid/versioning.rb |
mongoid-2.0.0.beta.5 | lib/mongoid/versioning.rb |