Module: RDKit::RESP::ClassMethods

Included in:
RDKit::RESP
Defined in:
lib/rdkit/resp.rb

Instance Method Summary collapse

Instance Method Details

#compose(data) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/rdkit/resp.rb', line 6

def compose(data)
  case data
  when *%w{ OK string list set hash zset none }
    "+#{data}\r\n"
  when true
    ":1\r\n"
  when false
    ":0\r\n"
  when Integer
    ":#{data}\r\n"
  when Array
    "*#{data.size}\r\n" + data.map { |i| compose(i) }.join
  when NilClass
    # Null Bulk String, not Null Array of "*-1\r\n"
    "$-1\r\n"
  when WrongTypeError
    "-WRONGTYPE #{data.message}\r\n"
  when StandardError
    "-ERR #{data.message}\r\n"
  else
    # always Bulk String
    "$#{data.bytesize}\r\n#{data}\r\n"
  end
end