module Mongoid::AutoIncrement

Constants

VERSION

Public Instance Methods

auto_increment!() click to toggle source
# File lib/mongoid/auto_increment.rb, line 46
def auto_increment!
  client = self.class.mongo_client
  self.class.auto_increment_classes.each do |klass|
    klass.auto_incremented_fields.each do |name|
      unless self[name]
        result = client.command({
          findAndModify: self.class.auto_increment_collection,
          query: {_id: "#{klass.auto_increment_class_prefix}_#{name}"},
          update: {"$inc" => {klass.auto_increment_value_field => 1}},
          upsert: true,
          new: true,
        })
        self[name] = result.first["value"][klass.auto_increment_value_field]
      end
    end
  end
end
dup() click to toggle source
Calls superclass method
# File lib/mongoid/auto_increment.rb, line 64
def dup
  copy = super
  self.class.auto_increment_classes.each do |klass|
    klass.auto_incremented_fields.each do |name|
      copy[name] = nil
    end
  end
  copy
end