Module: SqliteCrypto::IdTypes

Defined in:
lib/sqlite_crypto/id_types.rb

Constant Summary collapse

UUID_LENGTH =
36
ULID_LENGTH =
26
TYPE_TO_LIMIT =
{
  uuid: UUID_LENGTH,
  ulid: ULID_LENGTH
}.freeze
LIMIT_TO_TYPE =
TYPE_TO_LIMIT.invert.freeze

Class Method Summary collapse

Class Method Details

.string_limit_for(type) ⇒ Object



16
17
18
# File 'lib/sqlite_crypto/id_types.rb', line 16

def string_limit_for(type)
  TYPE_TO_LIMIT[type]
end

.type_from_sql_type(sql_type) ⇒ Object



24
25
26
27
28
29
# File 'lib/sqlite_crypto/id_types.rb', line 24

def type_from_sql_type(sql_type)
  case sql_type.to_s.downcase
  when "varchar(#{UUID_LENGTH})", "uuid" then :uuid
  when "varchar(#{ULID_LENGTH})", "ulid" then :ulid
  end
end

.type_from_string_limit(limit) ⇒ Object



20
21
22
# File 'lib/sqlite_crypto/id_types.rb', line 20

def type_from_string_limit(limit)
  LIMIT_TO_TYPE[limit]
end