Module: CLValueBytesParsers::CLI32BytesParser
- Extended by:
- CLI32BytesParser
- Included in:
- CLI32BytesParser, CLi32
- 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
64 65 66 67 68 69 70 71 72 73 |
# File 'lib/serialization/cl_value_bytes_parsers.rb', line 64 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.unpack("l*").first else byte_array.reverse.inject(0) {|m, b| (m << 8) + b } end end |
#to_bytes(clvalue) ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 |
# File 'lib/serialization/cl_value_bytes_parsers.rb', line 75 def to_bytes(clvalue) value = clvalue.get_value if value < 0 && value >= MIN_I32 @@check = value [value].pack("l<*").unpack("C*") elsif value >= 0 && value <= MAX_I32 [value].pack("l<*").unpack("C*") else "Parameter value '#{value}' is out of range." end end |