Class: ActiveRecord::Type::Uuid::Data

Inherits:
Object
  • Object
show all
Defined in:
lib/active_record-mysql-uuid_column/type_class.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(display_format, storage_format) ⇒ Data

Returns a new instance of Data.



46
47
48
# File 'lib/active_record-mysql-uuid_column/type_class.rb', line 46

def initialize(display_format, storage_format)
  @display_format, @storage_format = display_format, storage_format
end

Class Method Details

.from_database(value) ⇒ Object



54
55
56
57
58
59
60
# File 'lib/active_record-mysql-uuid_column/type_class.rb', line 54

def self.from_database(value)
  storage_format = value.unpack('H*').first.rjust(32, '0')
  new(
    storage_format.gsub(/^(.{8})(.{4})(.{4})(.{4})(.{12})$/, '\1-\2-\3-\4-\5'),
    storage_format
  )
end

.from_uuid_string(uuid) ⇒ Object



50
51
52
# File 'lib/active_record-mysql-uuid_column/type_class.rb', line 50

def self.from_uuid_string(uuid)
  new(uuid, uuid.downcase.gsub(/[^a-f0-9]/, ''))
end

Instance Method Details

#==(other) ⇒ Object



71
72
73
# File 'lib/active_record-mysql-uuid_column/type_class.rb', line 71

def ==(other)
  other == to_s || super
end

#hexObject



67
68
69
# File 'lib/active_record-mysql-uuid_column/type_class.rb', line 67

def hex
  @storage_format
end

#to_sObject Also known as: to_str



62
63
64
# File 'lib/active_record-mysql-uuid_column/type_class.rb', line 62

def to_s
  @display_format
end