Class: RDKit::RESPParser

Inherits:
Object show all
Defined in:
lib/rdkit/resp_parser.rb

Instance Method Summary collapse

Constructor Details

#initializeRESPParser

Returns a new instance of RESPParser.



7
8
9
10
11
12
# File 'lib/rdkit/resp_parser.rb', line 7

def initialize
  @reader = Hiredis::Reader.new
  @buffer = []
  @regexp = Regexp.new("\\A(.+)\\r\\n\\z")
  @inline_mode = true
end

Instance Method Details

#feed(data) ⇒ Object



14
15
16
17
18
19
20
21
22
# File 'lib/rdkit/resp_parser.rb', line 14

def feed(data)
  if @inline_mode && (data =~ @regexp)
    @buffer << $1.split
  else
    @inline_mode = false

    @reader.feed(data)
  end
end

#getsObject



24
25
26
27
28
29
30
31
# File 'lib/rdkit/resp_parser.rb', line 24

def gets
  if @inline_mode && (result = @buffer.shift)

    result
  else
    @reader.gets
  end
end