module Mongoid::Sequencer::ClassMethods

Public Instance Methods

next_sequence_value(field_name) click to toggle source
# File lib/mongoid/sequencer.rb, line 13
def next_sequence_value(field_name)
  collection = ::Mongoid.default_session[:__sequence]
  counter_id = "#{self.name.underscore}_#{field_name}"

  collection.find(
    _id: counter_id
  ).modify(
    {'$inc' => {value: 1}}, new: true, upsert: true
  ).fetch('value')
end
reset_sequence(field_name) click to toggle source
# File lib/mongoid/sequencer.rb, line 24
def reset_sequence(field_name)  
  collection = ::Mongoid.default_session[:__sequence]
  counter_id = "#{self.name.underscore}_#{field_name}"
  
  collection.find(
    _id: counter_id
  ).modify(
    {'$set' => {value: 0}}, new: true, upsert: true
  ).fetch('value')
end
sequence(field_name) click to toggle source
# File lib/mongoid/sequencer.rb, line 8
def sequence(field_name)
  field_name = field_name.to_s
  field field_name, default: lambda { self.class.next_sequence_value(field_name) }
end