Class: Ruflet::WireCodec

Inherits:
Object
  • Object
show all
Defined in:
lib/ruflet/server/wire_codec.rb

Defined Under Namespace

Classes: ByteReader

Class Method Summary collapse

Class Method Details

.pack(value) ⇒ 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/ruflet/server/wire_codec.rb', line 6

def pack(value)
  case value
  when NilClass
    "\xc0".b
  when TrueClass
    "\xc3".b
  when FalseClass
    "\xc2".b
  when Integer
    pack_integer(value)
  when Float
    "\xcb".b + [value].pack("G")
  when String
    pack_string(value)
  when Symbol
    pack_string(value.to_s)
  when Array
    pack_array(value)
  when Hash
    pack_map(value)
  else
    pack_string(value.to_s)
  end
end

.unpack(bytes) ⇒ Object



31
32
33
34
# File 'lib/ruflet/server/wire_codec.rb', line 31

def unpack(bytes)
  reader = ByteReader.new(bytes)
  read_value(reader)
end