Class: RLP::Sedes::Binary
- Inherits:
-
Object
- Object
- RLP::Sedes::Binary
show all
- Includes:
- Utils
- Defined in:
- lib/rlp/sedes/binary.rb
Constant Summary
collapse
- Infinity =
1.0 / 0.0
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Utils
#big_endian_to_int, #bytes_to_str, #encode_hex, #int_to_big_endian, #list?, #primitive?, #str_to_bytes
Constructor Details
#initialize(min_length: 0, max_length: Infinity, allow_empty: false) ⇒ Binary
Returns a new instance of Binary.
14
15
16
17
18
|
# File 'lib/rlp/sedes/binary.rb', line 14
def initialize(min_length: 0, max_length: Infinity, allow_empty: false)
@min_length = min_length
@max_length = max_length
@allow_empty = allow_empty
end
|
Class Method Details
.valid_type?(obj) ⇒ Boolean
9
10
11
|
# File 'lib/rlp/sedes/binary.rb', line 9
def valid_type?(obj)
obj.instance_of?(String)
end
|
Instance Method Details
#deserialize(serial) ⇒ Object
29
30
31
32
33
34
|
# File 'lib/rlp/sedes/binary.rb', line 29
def deserialize(serial)
raise DeserializationError.new("Objects of type #{serial.class} cannot be deserialized", serial) unless primitive?(serial)
raise DeserializationError.new("#{serial.class} has invalid length", serial) unless valid_length?(serial.size)
serial
end
|
#serialize(obj) ⇒ Object
20
21
22
23
24
25
26
27
|
# File 'lib/rlp/sedes/binary.rb', line 20
def serialize(obj)
raise SerializationError.new("Object is not a serializable (#{obj.class})", obj) unless self.class.valid_type?(obj)
serial = str_to_bytes obj
raise SerializationError.new("Object has invalid length", serial) unless valid_length?(serial.size)
serial
end
|