# File lib/guid.rb, line 98 98: def self.from_s(s) 99: raise ArgumentError, "Invalid GUID hexstring" unless 100: s =~ /\A[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}\z/i 101: guid = Guid.allocate 102: guid.instance_eval { @bytes = [s.gsub(/[^0-9a-f]+/i, '')].pack "h*" } 103: guid 104: end