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 |