Module: UniqNumberId::InstanceMethodsOnCallback

Defined in:
lib/uniq_number_id.rb

Instance Method Summary collapse

Instance Method Details

#generate_uniq_number_id(attr, bytes, length) ⇒ Object

TODO: support generate random number bases on attr type

for example, if attr DB type is integer, then generate integer
             if attr DB type is String, then generate hex string


50
51
52
53
54
55
56
# File 'lib/uniq_number_id.rb', line 50

def generate_uniq_number_id(attr, bytes, length)
  self.send("#{attr}=", loop do
              random_number = SecureRandom.random_bytes(bytes).unpack('N')[0]
              random_number = random_number.to_s[0..length-1].to_i
              break random_number unless self.class.exists?(attr => random_number)
            end)
end