Sha256: 1627aaddcd45507a48c33f3e8383edfb1244449d2e07bcfcbfa1dba5ee7209de

Contents?: true

Size: 462 Bytes

Versions: 3

Compression:

Stored size: 462 Bytes

Contents

# Microtime based uuids to be sortable
class Dorsale::SortableUUIDGenerator
  REGEX_WITH_DASHES    = /^([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})$/
  REGEX_WITHOUT_DASHES = /^([0-9a-f]{8})([0-9a-f]{4})([0-9a-f]{4})([0-9a-f]{4})([0-9a-f]{12})$/

  def self.generate
    prefix = Time.zone.now.strftime("%s%9N").to_i.to_s(16)
    suffix = SecureRandom.hex(8)
    (prefix + suffix).gsub(REGEX_WITHOUT_DASHES, '\1-\2-\3-\4-\5')
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
dorsale-3.4.0 app/libs/dorsale/sortable_uuid_generator.rb
dorsale-3.3.0 app/libs/dorsale/sortable_uuid_generator.rb
dorsale-3.2.0 app/libs/dorsale/sortable_uuid_generator.rb