Module: UniqNumberId::InstanceMethodsOnCallback
- Defined in:
- lib/uniq_number_id.rb
Instance Method Summary collapse
-
#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.
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 |