Method: Cborb::Decoding::State#consume

Defined in:
lib/cborb/decoding/state.rb

#consume(size) ⇒ String

Consume CBOR data. This method will be called only in fiber.

Parameters:

  • size (Integer)

    Size to consume

Returns:

  • (String)


43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/cborb/decoding/state.rb', line 43

def consume(size)
  data = @buffer.read(size).to_s

  # If buffered data is not enought, yield fiber until new data will be buffered.
  if data.size < size
    @buffer.reset!

    while data.size != size
      Fiber.yield
      data += @buffer.read(size - data.size)
    end
  end

  data
end