Class: Thick::Buffer

Inherits:
Object
  • Object
show all
Defined in:
lib/thick/buffer.rb

Instance Method Summary collapse

Constructor Details

#initialize(buffer = nil) ⇒ Buffer

Returns a new instance of Buffer.



8
9
10
# File 'lib/thick/buffer.rb', line 8

def initialize(buffer=nil)
  @buffer = buffer || Unpooled.buffer
end

Instance Method Details

#each(&block) ⇒ Object



28
29
30
31
32
# File 'lib/thick/buffer.rb', line 28

def each(&block)
  while (data = gets)
    block.call( data || "")
  end
end

#getsObject



34
35
36
37
38
39
40
41
42
43
# File 'lib/thick/buffer.rb', line 34

def gets
  return nil unless @buffer.readable
  nl = @buffer.bytes_before(10)
  if nl == -1
    nl = @buffer.readable_bytes
  else
    nl += 1
  end
  read(nl)
end

#read(n = nil, buffer = nil) ⇒ Object



21
22
23
24
25
26
# File 'lib/thick/buffer.rb', line 21

def read(n=nil, buffer=nil)
  return n ? nil : '' unless @buffer.readable
  buffer ||= ""
  n ||= @buffer.readable_bytes
  buffer << java.lang.String.new(@buffer.read_bytes(n).array).to_s
end

#rewindObject



17
18
19
# File 'lib/thick/buffer.rb', line 17

def rewind
  @buffer.reset_reader_index
end

#write(buffer) ⇒ Object

Raises:

  • (ArgumentError)


12
13
14
15
# File 'lib/thick/buffer.rb', line 12

def write(buffer)
  raise ArgumentError.new('ByteBuf is expected') unless buffer.kind_of?(ByteBuf)
  @buffer.writeBytes(buffer)
end