Module: Uuids::Base::HasUuids

Extended by:
ActiveSupport::Concern
Defined in:
lib/uuids/base/has_uuids.rb

Overview

Defines methods to be added by the has_uuids class helper.

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#uuidString

Returns the first UUID (sorted as a string) for the record.

Examples:

record.uuids.new value: "23423fe3-28d8-a1e5-bde3-2e08074aa92d"
record.uuids.new value: "9223238d-a7e3-2d36-a93d-1e50fea02de2"
record.uuid # => "23423fe3-28d8-a1e5-bde3-2e08074aa92d"

Returns:

  • (String)

    first value of the record’s uuids.



42
43
44
# File 'lib/uuids/base/has_uuids.rb', line 42

def uuid
  uuids.map(&:value).sort.first
end

#uuid=(value) ⇒ Object

Assigns a new uuid to the record.

Examples:

record.uuid = "23423fe3-28d8-a1e5-bde3-2e08074aa92d"
record.uuid # => "23423fe3-28d8-a1e5-bde3-2e08074aa92d"

Parameters:

  • value (String)

    a value of uuid to assign.

Returns:

  • object



54
55
56
# File 'lib/uuids/base/has_uuids.rb', line 54

def uuid=(value)
  uuids.new value: value
end

#uuids=(*values) ⇒ Object

Assigns a list of new uuids to the record.

Examples:

record.uuids = [
  "23423fe3-28d8-a1e5-bde3-2e08074aa92d",
  "9223238d-a7e3-2d36-a93d-1e50fea02de2"
]
record.uuids.map(&:value)
# => [
  "23423fe3-28d8-a1e5-bde3-2e08074aa92d",
  "9223238d-a7e3-2d36-a93d-1e50fea02de2"
]

Parameters:

  • values (Array<String>)

    an array of uuids string values to assign

Returns:

  • object.



73
74
75
76
77
# File 'lib/uuids/base/has_uuids.rb', line 73

def uuids=(*values)
  first = values.first
  list  = first.is_a?(Array) ? first : values
  list.each { |value| self.uuid = value }
end