6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/ruflet/server/wire_codec.rb', line 6
def pack(value)
case value
when Ruflet::Protocol::DateTimeValue
pack_extension(1, value)
when Ruflet::Protocol::TimeOfDayValue
pack_extension(2, value)
when Ruflet::Protocol::DurationValue
pack_extension(3, 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
binary_string?(value) ? pack_binary(value) : 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
|