39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
# File 'lib/amq/client/framing/string/frame.rb', line 39
def self.decode(string)
= string[HEADER_SLICE]
type, channel, size = self.()
data = string[DATA_SLICE]
payload = data[PAYLOAD_SLICE]
frame_end = data[-1, 1]
frame_end.force_encoding(AMQ::Protocol::Frame::FINAL_OCTET.encoding) if ENCODINGS_SUPPORTED
if payload.bytesize != size
raise BadLengthError.new(size, payload.bytesize)
end
raise NoFinalOctetError.new if frame_end != AMQ::Protocol::Frame::FINAL_OCTET
self.new(type, payload, channel)
end
|