class Unknownr::Windows::GUID

Public Class Methods

[](s) click to toggle source
# File lib/unknownr.rb, line 57
def self.[](s)
        raise 'Bad GUID format.' unless s =~ /^[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$/i

        new.tap { |guid|
                guid[:Data1] = s[0, 8].to_i(16)
                guid[:Data2] = s[9, 4].to_i(16)
                guid[:Data3] = s[14, 4].to_i(16)
                guid[:Data4][0] = s[19, 2].to_i(16)
                guid[:Data4][1] = s[21, 2].to_i(16)
                s[24, 12].split('').each_slice(2).with_index { |a, i|
                        guid[:Data4][i + 2] = a.join('').to_i(16)
                }
        }
end

Public Instance Methods

==(other) click to toggle source
# File lib/unknownr.rb, line 72
def ==(other) Windows.memcmp(other, self, size) == 0 end