Class: RLP::Sedes::Binary
- Inherits:
-
Object
- Object
- RLP::Sedes::Binary
show all
- Includes:
- Error, Utils
- Defined in:
- lib/rlp/sedes/binary.rb
Constant Summary
collapse
- Infinity =
1.0 / 0.0
Constants included
from Utils
Utils::BINARY_ENCODING
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Utils
#big_endian_to_int, #bytes?, #bytes_to_str, #decode_hex, #encode_hex, #int_to_big_endian, #list?, make_immutable!, #primitive?, #str_to_bytes
Constructor Details
#initialize(min_length: 0, max_length: Infinity, allow_empty: false) ⇒ Binary
Returns a new instance of Binary.
21
22
23
24
25
|
# File 'lib/rlp/sedes/binary.rb', line 21
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
.fixed_length(l, allow_empty: false) ⇒ Object
12
13
14
|
# File 'lib/rlp/sedes/binary.rb', line 12
def fixed_length(l, allow_empty: false)
new(min_length: l, max_length: l, allow_empty: allow_empty)
end
|
.valid_type?(obj) ⇒ Boolean
16
17
18
|
# File 'lib/rlp/sedes/binary.rb', line 16
def valid_type?(obj)
obj.instance_of?(String)
end
|
Instance Method Details
#deserialize(serial) ⇒ Object
36
37
38
39
40
41
|
# File 'lib/rlp/sedes/binary.rb', line 36
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
27
28
29
30
31
32
33
34
|
# File 'lib/rlp/sedes/binary.rb', line 27
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
|