module Lite::Uxid::Record::Nanoid

Public Instance Methods

find_by_uxid(uxid) click to toggle source
# File lib/lite/uxid/record/nanoid.rb, line 17
def find_by_uxid(uxid)
  find_by(uxid: uxid)
end
find_by_uxid!(uxid) click to toggle source
# File lib/lite/uxid/record/nanoid.rb, line 21
def find_by_uxid!(uxid)
  record = find_by_uxid(uxid)
  return record unless record.nil?

  raise ActiveRecord::RecordNotFound
end

Private Instance Methods

callback_generate_uxid!() click to toggle source
# File lib/lite/uxid/record/nanoid.rb, line 31
def callback_generate_uxid!
  random_nanoid = nil

  loop do
    random_nanoid = Lite::Uxid::Nanoid.encode
    break unless self.class.exists?(uxid: random_nanoid)
  end

  self.uxid = random_nanoid
end