Class: Cassandra::Uuid

Inherits:
Object
  • Object
show all
Defined in:
lib/cassandra/uuid.rb,
lib/cassandra/uuid/generator.rb

Overview

Represents a UUID value.

This is a very basic implementation of UUIDs and exists more or less just to encode and decode UUIDs from and to Cassandra.

If you want to generate UUIDs see Generator.

Direct Known Subclasses

TimeUuid

Defined Under Namespace

Classes: Generator

Instance Method Summary collapse

Constructor Details

#initialize(uuid) ⇒ Uuid

Creates a new UUID either from a string (expected to be on the standard 8-4-4-4-12 form, or just 32 characters without hyphens), or from a 128 bit number.

Parameters:

  • uuid (String)

    a 32 char uuid

Raises:

  • (ArgumentError)

    if the string does not conform to the expected format



34
35
36
37
38
39
40
41
# File 'lib/cassandra/uuid.rb', line 34

def initialize(uuid)
  case uuid
  when String
    @n = from_s(uuid)
  else
    @n = uuid
  end
end

Instance Method Details

#hashObject



56
57
58
# File 'lib/cassandra/uuid.rb', line 56

def hash
  @n.hash
end

#to_sObject

Returns a string representation of this UUID in the standard 8-4-4-4-12 form.



45
46
47
48
49
50
51
52
53
54
# File 'lib/cassandra/uuid.rb', line 45

def to_s
  @s ||= begin
    s = RAW_FORMAT % @n
    s.insert(20, HYPHEN)
    s.insert(16, HYPHEN)
    s.insert(12, HYPHEN)
    s.insert( 8, HYPHEN)
    s
  end
end

#valueBignum Also known as: to_i

Returns the numerical representation of this UUID

Returns:

  • (Bignum)

    the 128 bit numerical representation



64
65
66
# File 'lib/cassandra/uuid.rb', line 64

def value
  @n
end