Method: UUIDTools::UUID.parse_raw

Defined in:
lib/ext/uuidtools-2.1.1/lib/uuidtools.rb

.parse_raw(raw_string) ⇒ Object

Parses a UUID from a raw byte string.



144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
# File 'lib/ext/uuidtools-2.1.1/lib/uuidtools.rb', line 144

def self.parse_raw(raw_string)
  unless raw_string.kind_of? String
    raise TypeError,
      "Expected String, got #{raw_string.class.name} instead."
  end
  integer = self.convert_byte_string_to_int(raw_string)

  time_low = (integer >> 96) & 0xFFFFFFFF
  time_mid = (integer >> 80) & 0xFFFF
  time_hi_and_version = (integer >> 64) & 0xFFFF
  clock_seq_hi_and_reserved = (integer >> 56) & 0xFF
  clock_seq_low = (integer >> 48) & 0xFF
  nodes = []
  for i in 0..5
    nodes << ((integer >> (40 - (i * 8))) & 0xFF)
  end
  return self.new(time_low, time_mid, time_hi_and_version,
    clock_seq_hi_and_reserved, clock_seq_low, nodes)
end