def initialize(message)
self.command = ''
self.headers = {}
self.body = ''
self.original = message
return self if is_blank?(message)
parse = message.match /^(CONNECTED|MESSAGE|RECEIPT|ERROR)\n(.*?)\n\n(.*)\0\n?$/m
raise Stomp::Error::InvalidFormat if parse.nil?
self.command = parse[1]
self.headers = {}
parse[2].split("\n").map do |value|
parsed_value = value.match /^([\w|-]*):(.*)$/
self.headers[parsed_value[1].strip] = parsed_value[2].strip if parsed_value
end
body_length = -1
if self.headers['content-length']
body_length = self.headers['content-length'].to_i
raise Stomp::Error::InvalidMessageLength if parse[3].length != body_length
end
self.body = parse[3][0..body_length]
end