Sha256: cab346a71180cecb4acfb9878b4279bf092d659c0f17df98729e978d728682fe
Contents?: true
Size: 988 Bytes
Versions: 1
Compression:
Stored size: 988 Bytes
Contents
module DocumentNumber module Model def self.included(base) base.send :extend, ClassMethods end module ClassMethods # Declare this in your model to automatic document number assignment # # Usage: # class Invoice < ActiveRecord::Base # has_document_number # end # # Options: # :column the column name to update. Default value is `:number`. # :prefix the prefix for number. # :start the start value for number def has_document_number(options = {}) options.reverse_merge! column: :number, prefix: '', start: 0 method_name = "auto_increment_#{options[:column]}" before_create method_name define_method method_name do return if send(options[:column]).present? number = Numerator.next_number(self, options) write_attribute options[:column], "#{options[:prefix]}#{number}" end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
document_number-0.0.1 | lib/document_number/has_document_number.rb |