Sha256: 27705cb1e315ae75a7e52ee8e59d27c5365c5e03294c4db88817ea49ae774071
Contents?: true
Size: 924 Bytes
Versions: 3
Compression:
Stored size: 924 Bytes
Contents
# frozen_string_literal: true require 'active_record' require 'active_support' module Lite module Uxid module Record module Hash extend ActiveSupport::Concern included do after_create :callback_generate_uxid!, if: proc { respond_to?(:uxid) } def self.find_by_uxid(uxid) decoded_id = Lite::Uxid::Hash.decode(uxid) find_by(id: decoded_id) end def self.find_by_uxid!(uxid) record = find_by_uxid(uxid) return record unless record.nil? raise ActiveRecord::RecordNotFound end end def uxid_to_id return unless respond_to?(:uxid) Lite::Uxid::Hash.decode(uxid) end private def callback_generate_uxid! hash = Lite::Uxid::Hash.encode(id) update_column(:uxid, hash) end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
lite-uxid-1.0.2 | lib/lite/uxid/record/hash.rb |
lite-uxid-1.0.1 | lib/lite/uxid/record/hash.rb |
lite-uxid-1.0.0 | lib/lite/uxid/record/hash.rb |