Sha256: 5a997ad7389f6a9721d190c773b0db7b5b61f1a18c1f597ec8317ab0db292008

Contents?: true

Size: 680 Bytes

Versions: 2

Compression:

Stored size: 680 Bytes

Contents

require "active_record/base"

module DocumentNumber
  class Numerator
    # Gets next number for document
    def self.next_number(document, options)
      DocumentNumber.transaction(:requires_new => true) do
        if ActiveRecord::VERSION::MAJOR < 4
          document_number = DocumentNumber.lock(true).find_or_initialize_by_document(document)
        else
          document_number = DocumentNumber.lock(true).find_or_initialize_by(:document => document)
        end

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

        document_number.number = number + 1
        document_number.save!

        number
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
document_number-0.10.0 lib/document_number/numerator.rb
document_number-0.9.6 lib/document_number/numerator.rb