5
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
36
37
38
39
40
41
42
43
44
|
# File 'lib/tarantool/serializers.rb', line 5
def check_type(type)
type = type.to_sym if String === type
return :varint if Integer == type
return :string if String == type
case type
when :int, :integer, :int32, :integer32
:int
when :int64, :integer64
:int64
when :int16, :integer16
:int16
when :int8, :integer8
:int8
when :sint, :sinteger, :sint32, :sinteger32
:sint
when :sint16, :sinteger16
:sint16
when :sint64, :sinteger64
:sint64
when :sint8, :sinteger8
:sint8
when :varint
:varint
when :str, :string
:string
when :bytes, :auto
type
when Symbol
unless MAP.include?(type)
raise ArgumentError, "Unknown type name #{type.inspect}"
end
type
else
unless type.respond_to?(:encode) && type.respond_to?(:decode)
raise ArgumentError, "Wrong serializer object #{type.inspect} (must respond to #encode and #decode)"
end
type
end
end
|