Class: WindowsCOM::GUID
- Inherits:
-
FFI::Struct
- Object
- FFI::Struct
- WindowsCOM::GUID
- Includes:
- FFIStructMemoryEquality
- Defined in:
- lib/windows_com/common.rb
Class Method Summary collapse
Instance Method Summary collapse
Methods included from FFIStructMemoryEquality
Class Method Details
.[](str) ⇒ Object
123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 |
# File 'lib/windows_com/common.rb', line 123 def self.[](str) raise 'Bad GUID format' unless str =~ /^[0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}$/i guid = new guid[:Data1] = str[0, 8].to_i(16) guid[:Data2] = str[9, 4].to_i(16) guid[:Data3] = str[14, 4].to_i(16) guid[:Data4][0] = str[19, 2].to_i(16) guid[:Data4][1] = str[21, 2].to_i(16) str[24, 12].split('').each_slice(2).with_index { |a, i| guid[:Data4][i + 2] = a.join('').to_i(16) } guid end |
Instance Method Details
#to_s ⇒ Object
140 141 142 143 144 145 |
# File 'lib/windows_com/common.rb', line 140 def to_s format '%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X', self[:Data1], self[:Data2], self[:Data3], self[:Data4][0], self[:Data4][1], self[:Data4][2], self[:Data4][3], self[:Data4][4], self[:Data4][5], self[:Data4][6], self[:Data4][7] end |