Class: DocumentNumber::Numerator

Inherits:
Object
  • Object
show all
Defined in:
lib/document_number/numerator.rb

Class Method Summary collapse

Class Method Details

.next_number(object, options) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/document_number/numerator.rb', line 5

def self.next_number(object, options)
  DocumentNumber.transaction do
    document_number = DocumentNumber.lock(true).find_or_initialize_by(document: object.class.to_s.underscore)

    number = document_number.number == 1 ? options[:start] : document_number.number

    document_number.number += 1
    document_number.save!

    number
  end
end