Module: UniqNumberId::ClassMethods
- Defined in:
- lib/uniq_number_id.rb
Overview
Example using Active Record:
# Schema: User(member_number:integer)
class User < ActiveRecord::Base
uniq_number_id :member_number, length: 5
end
user = User.new
user.save
user.member_number # => 17263
user.renew_member_number # => true, will update member_number with a new number
Instance Method Summary collapse
Instance Method Details
#uniq_number_id(*args) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/uniq_number_id.rb', line 22 def uniq_number_id(*args) include InstanceMethodsOnCallback cattr_accessor :number_columns, :options = args. length = .fetch(:length, 8) bytes = ((length*3.0)/2.0) bytes = 8 if bytes < 8 args.each do |attr| define_method("renew_#{attr}") do send(:generate_uniq_number_id, attr, bytes, length) save end end before_create do args.each do |attr| self.generate_uniq_number_id(attr, bytes, length) end end end |