Module: MongoMapper::Plugins::Versioned::ClassMethods

Defined in:
lib/mongo_mapper/plugins/versioned.rb

Instance Method Summary collapse

Instance Method Details

#versioned(options = {}) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/mongo_mapper/plugins/versioned.rb', line 16

def versioned(options={})
  configuration = { :ignored_keys => %w(_id version_number) }
  configuration[:ignored_keys].concat(options[:ignored_keys]).uniq if options.key?(:ignored_keys)
  
  key   :version_number, Integer, :default => 1
  many  :versions, :class => MongoMapper::Plugins::Versioned::Version, :foreign_key => :versioned_id, :dependent => :destroy, :order => :version_number.asc

  after_create  :create_version, :if => :should_create_initial_version?
  before_update :create_version, :if => :should_create_version?
  
  define_method "ignored_keys" do
    configuration[:ignored_keys]
  end
end