scale_rb 0.1.15 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,7 +2,7 @@
2
2
 
3
3
  # https://www.rubyguides.com/2017/01/read-binary-data/
4
4
  class String
5
- def to_bytes
5
+ def _to_bytes
6
6
  data = start_with?('0x') ? self[2..] : self
7
7
  raise 'Not valid hex string' if data =~ /[^\da-f]+/i
8
8
 
@@ -10,11 +10,11 @@ class String
10
10
  data.scan(/../).map(&:hex)
11
11
  end
12
12
 
13
- def to_camel
13
+ def _to_camel
14
14
  split('_').collect(&:capitalize).join
15
15
  end
16
16
 
17
- def underscore
17
+ def _underscore
18
18
  gsub(/::/, '/')
19
19
  .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
20
20
  .gsub(/([a-z\d])([A-Z])/, '\1_\2')
@@ -24,22 +24,22 @@ class String
24
24
  end
25
25
 
26
26
  class Integer
27
- def to_bytes(bit_length = nil)
28
- return to_s(16).to_bytes unless bit_length
27
+ def _to_bytes(bit_length = nil)
28
+ return to_s(16)._to_bytes unless bit_length
29
29
 
30
30
  hex = to_s(16).rjust(bit_length / 4, '0')
31
- hex.to_bytes
31
+ hex._to_bytes
32
32
  end
33
33
 
34
34
  # unsigned to signed
35
- def to_signed(bit_length)
35
+ def _to_signed(bit_length)
36
36
  unsigned_mid = 2**(bit_length - 1)
37
37
  unsigned_ceiling = 2**bit_length
38
38
  self >= unsigned_mid ? self - unsigned_ceiling : self
39
39
  end
40
40
 
41
41
  # signed to unsigned
42
- def to_unsigned(bit_length)
42
+ def _to_unsigned(bit_length)
43
43
  unsigned_mid = 2**(bit_length - 1)
44
44
  unsigned_ceiling = 2**bit_length
45
45
  raise 'out of scope' if self >= unsigned_mid || self <= -unsigned_mid
@@ -48,48 +48,48 @@ class Integer
48
48
  end
49
49
 
50
50
  # unix timestamp to utc
51
- def to_utc
51
+ def _to_utc
52
52
  Time.at(self).utc.asctime
53
53
  end
54
54
 
55
55
  # utc to unix timestamp
56
- def from_utc(utc_asctime)
56
+ def _from_utc(utc_asctime)
57
57
  Time.parse(utc_asctime)
58
58
  end
59
59
  end
60
60
 
61
61
  class Array
62
- def to_hex
63
- raise 'Not a byte array' unless byte_array?
62
+ def _to_hex
63
+ raise 'Not a byte array' unless _byte_array?
64
64
 
65
65
  reduce('0x') { |hex, byte| hex + byte.to_s(16).rjust(2, '0') }
66
66
  end
67
67
 
68
- def to_bin
69
- raise 'Not a byte array' unless byte_array?
68
+ def _to_bin
69
+ raise 'Not a byte array' unless _byte_array?
70
70
 
71
71
  reduce('0b') { |bin, byte| bin + byte.to_s(2).rjust(8, '0') }
72
72
  end
73
73
 
74
- def to_utf8
75
- raise 'Not a byte array' unless byte_array?
74
+ def _to_utf8
75
+ raise 'Not a byte array' unless _byte_array?
76
76
 
77
77
  pack('C*').force_encoding('utf-8')
78
78
  end
79
79
 
80
- def to_uint
81
- to_hex.to_i(16)
80
+ def _to_uint
81
+ _to_hex.to_i(16)
82
82
  end
83
83
 
84
- def to_int(bit_length)
85
- to_uint.to_signed(bit_length)
84
+ def _to_int(bit_length)
85
+ _to_uint._to_signed(bit_length)
86
86
  end
87
87
 
88
- def flip
88
+ def _flip
89
89
  reverse
90
90
  end
91
91
 
92
- def byte_array?
92
+ def _byte_array?
93
93
  all? { |e| e >= 0 and e <= 255 }
94
94
  end
95
95
  end
@@ -1,280 +1,284 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module PortableCodec
4
- class Error < StandardError; end
5
- class TypeNotFound < Error; end
6
- class TypeNotImplemented < Error; end
7
- class CompositeInvalidValue < Error; end
8
- class ArrayLengthNotEqual < Error; end
9
- class VariantItemNotFound < Error; end
10
- class VariantIndexOutOfRange < Error; end
11
- class VariantInvalidValue < Error; end
12
-
13
- class << self
14
- def u256(value)
15
- bytes = ScaleRb.encode('u256', value)
16
- bytes.each_slice(8).map do |slice|
17
- ScaleRb.decode('u64', slice).first
3
+ module ScaleRb
4
+ module PortableCodec
5
+ class Error < StandardError; end
6
+ class TypeNotFound < Error; end
7
+ class TypeNotImplemented < Error; end
8
+ class CompositeInvalidValue < Error; end
9
+ class ArrayLengthNotEqual < Error; end
10
+ class VariantItemNotFound < Error; end
11
+ class VariantIndexOutOfRange < Error; end
12
+ class VariantInvalidValue < Error; end
13
+
14
+ class << self
15
+ def u256(value)
16
+ bytes = ScaleRb.encode('u256', value)
17
+ bytes.each_slice(8).map do |slice|
18
+ ScaleRb.decode('u64', slice).first
19
+ end
18
20
  end
19
21
  end
20
- end
21
22
 
22
- class << self
23
- # registry:
24
- # {
25
- # 0 => {
26
- # path: [...],
27
- # params: [...],
28
- # def: {
29
- # primitive: 'u8' | array: {} | ...
30
- # }
31
- # },
32
- # 1 => {
33
- # ...
34
- # }
35
- # }
36
- def decode(id, bytes, registry)
37
- type = registry[id]
38
- raise TypeNotFound, "id: #{id}" if type.nil?
39
-
40
- _path = type._get(:path)
41
- _params = type._get(:params)
42
- type_def = type._get(:def)
43
-
44
- return decode_primitive(type_def, bytes) if type_def._key?(:primitive)
45
- return decode_compact(bytes) if type_def._key?(:compact)
46
- return decode_array(type_def._get(:array), bytes, registry) if type_def._key?(:array)
47
- return decode_sequence(type_def._get(:sequence), bytes, registry) if type_def._key?(:sequence)
48
- return decode_tuple(type_def._get(:tuple), bytes, registry) if type_def._key?(:tuple)
49
- return decode_composite(type_def._get(:composite), bytes, registry) if type_def._key?(:composite)
50
- return decode_variant(type_def._get(:variant), bytes, registry) if type_def._key?(:variant)
51
-
52
- raise TypeNotImplemented, "id: #{id}"
53
- end
23
+ class << self
24
+ # registry:
25
+ # {
26
+ # 0 => {
27
+ # path: [...],
28
+ # params: [...],
29
+ # def: {
30
+ # primitive: 'u8' | array: {} | ...
31
+ # }
32
+ # },
33
+ # 1 => {
34
+ # ...
35
+ # }
36
+ # }
37
+ def decode(id, bytes, registry)
38
+ type = registry[id]
39
+ raise TypeNotFound, "id: #{id}" if type.nil?
40
+
41
+ _path = type._get(:path)
42
+ _params = type._get(:params)
43
+ type_def = type._get(:def)
44
+
45
+ return decode_primitive(type_def, bytes) if type_def._key?(:primitive)
46
+ return decode_compact(bytes) if type_def._key?(:compact)
47
+ return decode_array(type_def._get(:array), bytes, registry) if type_def._key?(:array)
48
+ return decode_sequence(type_def._get(:sequence), bytes, registry) if type_def._key?(:sequence)
49
+ return decode_tuple(type_def._get(:tuple), bytes, registry) if type_def._key?(:tuple)
50
+ return decode_composite(type_def._get(:composite), bytes, registry) if type_def._key?(:composite)
51
+ return decode_variant(type_def._get(:variant), bytes, registry) if type_def._key?(:variant)
52
+
53
+ raise TypeNotImplemented, "id: #{id}"
54
+ end
54
55
 
55
- # Uint, Str, Bool
56
- # Int, Bytes ?
57
- def decode_primitive(type_def, bytes)
58
- primitive = type_def._get(:primitive)
59
- return ScaleRb.decode_uint(primitive, bytes) if ScaleRb.uint?(primitive)
60
- return ScaleRb.decode_string(bytes) if ScaleRb.string?(primitive)
61
- return ScaleRb.decode_boolean(bytes) if ScaleRb.boolean?(primitive)
62
- # return ScaleRb.decode_int(primitive, bytes) if int?(primitive)
63
- # return ScaleRb.decode_bytes(bytes) if bytes?(primitive)
64
- end
56
+ # Uint, Str, Bool
57
+ # Int, Bytes ?
58
+ def decode_primitive(type_def, bytes)
59
+ primitive = type_def._get(:primitive)
60
+ return ScaleRb.decode_uint(primitive, bytes) if ScaleRb.uint?(primitive)
61
+ return ScaleRb.decode_string(bytes) if ScaleRb.string?(primitive)
65
62
 
66
- def decode_compact(bytes)
67
- ScaleRb.decode_compact(bytes)
68
- end
63
+ ScaleRb.decode_boolean(bytes) if ScaleRb.boolean?(primitive)
64
+ # return ScaleRb.decode_int(primitive, bytes) if int?(primitive)
65
+ # return ScaleRb.decode_bytes(bytes) if bytes?(primitive)
66
+ end
69
67
 
70
- def decode_array(array_type, bytes, registry)
71
- len = array_type._get(:len)
72
- inner_type_id = array_type._get(:type)
73
-
74
- # check if the type of inner_type_id is a u8
75
- if _u8?(inner_type_id, registry)
76
- [
77
- bytes[0...len].to_hex,
78
- bytes[len..]
79
- ]
80
- else
81
- _decode_types([inner_type_id] * len, bytes, registry)
68
+ def decode_compact(bytes)
69
+ ScaleRb.decode_compact(bytes)
82
70
  end
83
- end
84
71
 
85
- def _u8?(type_id, registry)
86
- type = registry[type_id]
87
- raise TypeNotFound, "id: #{type_id}" if type.nil?
72
+ def decode_array(array_type, bytes, registry)
73
+ len = array_type._get(:len)
74
+ inner_type_id = array_type._get(:type)
88
75
 
89
- type._get(:def)._get(:primitive)&.downcase == 'u8'
90
- end
76
+ # check if the type of inner_type_id is a u8
77
+ if _u8?(inner_type_id, registry)
78
+ [
79
+ bytes[0...len]._to_hex,
80
+ bytes[len..]
81
+ ]
82
+ else
83
+ _decode_types([inner_type_id] * len, bytes, registry)
84
+ end
85
+ end
91
86
 
92
- def decode_sequence(sequence_type, bytes, registry)
93
- len, remaining_bytes = decode_compact(bytes)
94
- inner_type_id = sequence_type._get(:type)
95
- _decode_types([inner_type_id] * len, remaining_bytes, registry)
96
- end
87
+ def _u8?(type_id, registry)
88
+ type = registry[type_id]
89
+ raise TypeNotFound, "id: #{type_id}" if type.nil?
97
90
 
98
- def decode_tuple(tuple_type, bytes, registry)
99
- _decode_types(tuple_type, bytes, registry)
100
- end
91
+ type._get(:def)._get(:primitive)&.downcase == 'u8'
92
+ end
101
93
 
102
- # {
103
- # name: value,
104
- # ...
105
- # }
106
- def decode_composite(composite_type, bytes, registry)
107
- fields = composite_type._get(:fields)
108
-
109
- # reduce composite level when composite only has one field without name
110
- if fields.length == 1 && fields.first._get(:name).nil?
111
- decode(fields.first._get(:type), bytes, registry)
112
- else
113
- type_name_list = fields.map { |f| f._get(:name) }
114
- type_id_list = fields.map { |f| f._get(:type) }
115
-
116
- type_value_list, remaining_bytes = _decode_types(type_id_list, bytes, registry)
117
- [
118
- if type_name_list.all?(&:nil?)
119
- type_value_list
120
- else
121
- [type_name_list.map(&:to_sym), type_value_list].transpose.to_h
122
- end,
123
- remaining_bytes
124
- ]
94
+ def decode_sequence(sequence_type, bytes, registry)
95
+ len, remaining_bytes = decode_compact(bytes)
96
+ inner_type_id = sequence_type._get(:type)
97
+ _decode_types([inner_type_id] * len, remaining_bytes, registry)
98
+ end
99
+
100
+ def decode_tuple(tuple_type, bytes, registry)
101
+ _decode_types(tuple_type, bytes, registry)
102
+ end
103
+
104
+ # {
105
+ # name: value,
106
+ # ...
107
+ # }
108
+ def decode_composite(composite_type, bytes, registry)
109
+ fields = composite_type._get(:fields)
110
+
111
+ # reduce composite level when composite only has one field without name
112
+ if fields.length == 1 && fields.first._get(:name).nil?
113
+ decode(fields.first._get(:type), bytes, registry)
114
+ else
115
+ type_name_list = fields.map { |f| f._get(:name) }
116
+ type_id_list = fields.map { |f| f._get(:type) }
117
+
118
+ type_value_list, remaining_bytes = _decode_types(type_id_list, bytes, registry)
119
+ [
120
+ if type_name_list.all?(&:nil?)
121
+ type_value_list
122
+ else
123
+ [type_name_list.map(&:to_sym), type_value_list].transpose.to_h
124
+ end,
125
+ remaining_bytes
126
+ ]
127
+ end
125
128
  end
126
- end
127
129
 
128
- def decode_variant(variant_type, bytes, registry)
129
- variants = variant_type._get(:variants)
130
+ def decode_variant(variant_type, bytes, registry)
131
+ variants = variant_type._get(:variants)
130
132
 
131
- index = bytes[0].to_i # TODO: check
132
- item = variants.find { |v| v._get(:index) == index } # item is an composite
133
+ index = bytes[0].to_i # TODO: check
134
+ item = variants.find { |v| v._get(:index) == index } # item is an composite
133
135
 
134
- raise VariantIndexOutOfRange, "type: #{variant_type}, index: #{index}, bytes: #{bytes}" if item.nil?
136
+ raise VariantIndexOutOfRange, "type: #{variant_type}, index: #{index}, bytes: #{bytes}" if item.nil?
135
137
 
136
- item_name = item._get(:name)
137
- item_fields = item._get(:fields)
138
- if item_fields.empty?
139
- [item_name, bytes[1..]]
140
- else
141
- item_value, remaining_bytes = decode_composite(item, bytes[1..], registry)
142
- [{ item_name.to_sym => item_value }, remaining_bytes]
138
+ item_name = item._get(:name)
139
+ item_fields = item._get(:fields)
140
+ if item_fields.empty?
141
+ [item_name, bytes[1..]]
142
+ else
143
+ item_value, remaining_bytes = decode_composite(item, bytes[1..], registry)
144
+ [{ item_name.to_sym => item_value }, remaining_bytes]
145
+ end
143
146
  end
144
- end
145
147
 
146
- def _decode_types(ids, bytes, registry = {})
147
- ScaleRb._decode_each(ids, bytes) do |id, remaining_bytes|
148
- decode(id, remaining_bytes, registry)
148
+ def _decode_types(ids, bytes, registry = {})
149
+ ScaleRb._decode_each(ids, bytes) do |id, remaining_bytes|
150
+ decode(id, remaining_bytes, registry)
151
+ end
149
152
  end
150
- end
151
153
 
152
- def encode_with_hasher(value, type_id, registry, hasher)
153
- value_bytes = encode(type_id, value, registry)
154
- Hasher.apply_hasher(hasher, value_bytes)
155
- end
154
+ def encode_with_hasher(value, type_id, registry, hasher)
155
+ value_bytes = encode(type_id, value, registry)
156
+ Hasher.apply_hasher(hasher, value_bytes)
157
+ end
156
158
 
157
- def encode(id, value, registry)
158
- type = registry[id]
159
- raise TypeNotFound, "id: #{id}" if type.nil?
159
+ def encode(id, value, registry)
160
+ type = registry[id]
161
+ raise TypeNotFound, "id: #{id}" if type.nil?
160
162
 
161
- type_def = type._get(:def)
162
- # debug
163
- # p type_def
164
- # p value
163
+ type_def = type._get(:def)
164
+ # debug
165
+ # p type_def
166
+ # p value
165
167
 
166
- return encode_primitive(type_def, value) if type_def._key?(:primitive)
167
- return encode_compact(value) if type_def._key?(:compact)
168
- return encode_array(type_def._get(:array), value, registry) if type_def._key?(:array)
169
- return encode_sequence(type_def._get(:sequence), value, registry) if type_def._key?(:sequence)
170
- return encode_tuple(type_def._get(:tuple), value, registry) if type_def._key?(:tuple)
171
- return encode_composite(type_def._get(:composite), value, registry) if type_def._key?(:composite)
172
- return encode_variant(type_def._get(:variant), value, registry) if type_def._key?(:variant)
168
+ return encode_primitive(type_def, value) if type_def._key?(:primitive)
169
+ return encode_compact(value) if type_def._key?(:compact)
170
+ return encode_array(type_def._get(:array), value, registry) if type_def._key?(:array)
171
+ return encode_sequence(type_def._get(:sequence), value, registry) if type_def._key?(:sequence)
172
+ return encode_tuple(type_def._get(:tuple), value, registry) if type_def._key?(:tuple)
173
+ return encode_composite(type_def._get(:composite), value, registry) if type_def._key?(:composite)
174
+ return encode_variant(type_def._get(:variant), value, registry) if type_def._key?(:variant)
173
175
 
174
- raise TypeNotImplemented, "id: #{id}"
175
- end
176
+ raise TypeNotImplemented, "id: #{id}"
177
+ end
176
178
 
177
- def encode_primitive(type_def, value)
178
- primitive = type_def._get(:primitive)
179
- return ScaleRb.encode_uint(primitive, value) if ScaleRb.uint?(primitive)
180
- return ScaleRb.encode_string(value) if ScaleRb.string?(primitive)
181
- return ScaleRb.encode_boolean(value) if ScaleRb.boolean?(primitive)
182
- end
179
+ def encode_primitive(type_def, value)
180
+ primitive = type_def._get(:primitive)
181
+ return ScaleRb.encode_uint(primitive, value) if ScaleRb.uint?(primitive)
182
+ return ScaleRb.encode_string(value) if ScaleRb.string?(primitive)
183
183
 
184
- def encode_compact(value)
185
- ScaleRb.encode_compact(value)
186
- end
184
+ ScaleRb.encode_boolean(value) if ScaleRb.boolean?(primitive)
185
+ end
187
186
 
188
- def encode_array(array_type, value, registry)
189
- length = array_type._get(:len)
190
- inner_type_id = array_type._get(:type)
191
- raise ArrayLengthNotEqual, "type: #{array_type}, value: #{value.inspect}" if length != value.length
187
+ def encode_compact(value)
188
+ ScaleRb.encode_compact(value)
189
+ end
192
190
 
193
- _encode_types([inner_type_id] * length, value, registry)
194
- end
191
+ def encode_array(array_type, value, registry)
192
+ length = array_type._get(:len)
193
+ inner_type_id = array_type._get(:type)
194
+ raise ArrayLengthNotEqual, "type: #{array_type}, value: #{value.inspect}" if length != value.length
195
195
 
196
- def encode_sequence(sequence_type, value, registry)
197
- inner_type_id = sequence_type._get(:type)
198
- length_bytes = encode_compact(value.length)
199
- length_bytes + _encode_types([inner_type_id] * value.length, value, registry)
200
- end
196
+ _encode_types([inner_type_id] * length, value, registry)
197
+ end
201
198
 
202
- # tuple_type: [type_id1, type_id2, ...]
203
- def encode_tuple(tuple_type, value, registry)
204
- _encode_types(tuple_type, value, registry)
205
- end
199
+ def encode_sequence(sequence_type, value, registry)
200
+ inner_type_id = sequence_type._get(:type)
201
+ length_bytes = encode_compact(value.length)
202
+ length_bytes + _encode_types([inner_type_id] * value.length, value, registry)
203
+ end
206
204
 
207
- # value:
208
- # {
209
- # name1: value1,
210
- # name2: value2,
211
- # ...
212
- # }
213
- # or
214
- # [value1, value2, ...]
215
- def encode_composite(composite_type, value, registry)
216
- fields = composite_type._get(:fields)
217
- # reduce composite level when composite only has one field without name
218
- if fields.length == 1 && fields.first._get(:name).nil?
219
- # debug
220
- # p fields.first._get(:type)
221
- # p value
222
- encode(fields.first._get(:type), value, registry)
223
- else
224
- values =
205
+ # tuple_type: [type_id1, type_id2, ...]
206
+ def encode_tuple(tuple_type, value, registry)
207
+ _encode_types(tuple_type, value, registry)
208
+ end
209
+
210
+ # value:
211
+ # {
212
+ # name1: value1,
213
+ # name2: value2,
214
+ # ...
215
+ # }
216
+ # or
217
+ # [value1, value2, ...]
218
+ def encode_composite(composite_type, value, registry)
219
+ fields = composite_type._get(:fields)
220
+ # reduce composite level when composite only has one field without name
221
+ if fields.length == 1 && fields.first._get(:name).nil?
222
+ # debug
223
+ # p fields.first._get(:type)
224
+ # p value
225
+ encode(fields.first._get(:type), value, registry)
226
+ else
227
+ values =
228
+ if value.instance_of?(Hash)
229
+ value.values
230
+ elsif value.instance_of?(Array)
231
+ value
232
+ else
233
+ raise CompositeInvalidValue, "value: #{value}, only hash and array"
234
+ end
235
+
236
+ type_id_list = fields.map { |f| f._get(:type) }
237
+ _encode_types(type_id_list, values, registry)
238
+ end
239
+ end
240
+
241
+ # value:
242
+ # {
243
+ # name: v(Hash)
244
+ # }
245
+ # or
246
+ # the_value(String)
247
+ def encode_variant(variant_type, value, registry)
248
+ variants = variant_type._get(:variants)
249
+
250
+ name, v = # v: item inner value
225
251
  if value.instance_of?(Hash)
226
- value.values
227
- elsif value.instance_of?(Array)
228
- value
252
+ [value.keys.first.to_s, value.values.first]
253
+ elsif value.instance_of?(String)
254
+ [value, {}]
229
255
  else
230
- raise CompositeInvalidValue, "value: #{value}, only hash and array"
256
+ raise VariantInvalidValue, "type: #{variant_type}, value: #{value}"
231
257
  end
232
258
 
233
- type_id_list = fields.map { |f| f._get(:type) }
234
- _encode_types(type_id_list, values, registry)
235
- end
236
- end
259
+ item = variants.find { |var| var._get(:name) == name }
260
+ raise VariantItemNotFound, "type: #{variant_type}, name: #{name}" if item.nil?
237
261
 
238
- # value:
239
- # {
240
- # name: v(Hash)
241
- # }
242
- # or
243
- # the_value(String)
244
- def encode_variant(variant_type, value, registry)
245
- variants = variant_type._get(:variants)
246
-
247
- name, v = # v: item inner value
248
- if value.instance_of?(Hash)
249
- [value.keys.first.to_s, value.values.first]
250
- elsif value.instance_of?(String)
251
- [value, {}]
252
- else
253
- raise VariantInvalidValue, "type: #{variant_type}, value: #{value}"
262
+ # if the variant item has more than one field, the value must be a hash with the same length.
263
+ # if the variant item has only one field, that means the field is a type id point to a composite. TODO: check the type's fields length
264
+ if item._get(:fields).length > 1 && item._get(:fields).length != v.length
265
+ raise VariantFieldsLengthNotMatch,
266
+ "type: #{variant_type}, \nvalue: #{v}"
254
267
  end
255
268
 
256
- item = variants.find { |var| var._get(:name) == name }
257
- raise VariantItemNotFound, "type: #{variant_type}, name: #{name}" if item.nil?
258
-
259
- # if the variant item has more than one field, the value must be a hash with the same length.
260
- # if the variant item has only one field, that means the field is a type id point to a composite. TODO: check the type's fields length
261
- if item._get(:fields).length > 1 && item._get(:fields).length != v.length
262
- raise VariantFieldsLengthNotMatch,
263
- "type: #{variant_type}, \nvalue: #{v}"
269
+ ScaleRb.encode_uint('u8', item._get(:index)) + encode_composite(item, v, registry)
264
270
  end
265
271
 
266
- ScaleRb.encode_uint('u8', item._get(:index)) + encode_composite(item, v, registry)
267
- end
268
-
269
- def _encode_types(ids, values, registry)
270
- ScaleRb._encode_each(ids, values) do |id, value|
271
- encode(id, value, registry)
272
+ def _encode_types(ids, values, registry)
273
+ ScaleRb._encode_each(ids, values) do |id, value|
274
+ encode(id, value, registry)
275
+ end
272
276
  end
273
- end
274
277
 
275
- def _encode_types_with_hashers(ids, values, registry, hashers)
276
- ScaleRb._encode_each_with_hashers(ids, values, hashers) do |id, value|
277
- encode(id, value, registry)
278
+ def _encode_types_with_hashers(ids, values, registry, hashers)
279
+ ScaleRb._encode_each_with_hashers(ids, values, hashers) do |id, value|
280
+ encode(id, value, registry)
281
+ end
278
282
  end
279
283
  end
280
284
  end
@@ -1,3 +1,3 @@
1
1
  module ScaleRb
2
- VERSION = '0.1.15'
2
+ VERSION = '0.2.2'
3
3
  end
data/lib/scale_rb.rb CHANGED
@@ -21,7 +21,6 @@ require 'hasher'
21
21
  require 'storage_helper'
22
22
 
23
23
  # client
24
- require 'client/rpc_request_builder'
25
24
  require 'client/http_client'
26
25
  require 'client/abstract_ws_client'
27
26