Module: Fraggel::Encoder

Defined in:
lib/fraggel/encoder.rb

Defined Under Namespace

Classes: UnknownType

Instance Method Summary collapse

Instance Method Details

#encode(value) ⇒ Object



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/fraggel/encoder.rb', line 7

def encode(value)
  case value
  when nil
    "$-1\r\n"
  when true
    encode(1)
  when false
    encode(0)
  when Integer
    ":%d\r\n" % [value]
  when String
    "$%d\r\n%s\r\n" % [value.length, value]
  when Array
    mapped = value.map {|x| encode(x) }
    "*%d\r\n%s" % [mapped.length, mapped]
  when StandardError, Exception
    "-ERR: %s\r\n" % [value.message]
  when Symbol
    "+%s\r\n" % [value]
  else
    raise UnknownType, value
  end
end