diff --git a/lib/oxygene/extensions.rb b/lib/oxygene/extensions.rb index 7a97071..b9469a9 100644 --- a/lib/oxygene/extensions.rb +++ b/lib/oxygene/extensions.rb @@ -27,8 +27,16 @@ module Oxygene refine CBOR.singleton_class do def decode_sequence(data) - unpacker = CBOR::Unpacker.new(StringIO.new(data)) - unpacker.each.to_a + unpacker = CBOR::Unpacker.new + unpacker.feed(data) + + items = [] + + while !unpacker.buffer.empty? + items << unpacker.read + end + + items end end