Module: CLValueBytesParsers::CLI64BytesParser
- Extended by:
- CLI64BytesParser
- Included in:
- CLI64BytesParser, CLi64
- Defined in:
- lib/serialization/cl_value_bytes_parsers.rb
Constant Summary collapse
- @@check =
0
Instance Method Summary collapse
Instance Method Details
#from_bytes(byte_array) ⇒ Object
91 92 93 94 95 96 97 98 99 100 |
# File 'lib/serialization/cl_value_bytes_parsers.rb', line 91 def from_bytes(byte_array) if @@check < 0 @@check = 0 bytes = byte_array.map { |b| b.chr }.join bytes.unpack("B*").first.scan(/[01]{8}/) bytes.reverse.unpack("q*").first else byte_array.reverse.inject(0) {|m, b| (m << 8) + b } end end |
#to_bytes(value) ⇒ Object
102 103 104 105 106 107 108 109 110 111 |
# File 'lib/serialization/cl_value_bytes_parsers.rb', line 102 def to_bytes(value) if value < 0 && value >= MIN_I64 @@check = value [value].pack("q>*").unpack("C*") elsif value >= 0 && value <= MAX_I64 [value].pack("q<*").unpack("C*") else "Parameter value '#{value}' is out of range." end end |