class Array
Public Instance Methods
append_sint(number, byte)
click to toggle source
# File lib/core_ext.rb, line 22 def append_sint(number, byte) raise 'Insufficient bytes' if number.abs >= (1 << (byte * 8)) sign = (number < 0) ? 1 : 0 number &= (1 << ((byte * 8) - 1)) - 1 self.append_uint(number, byte) self << (self.pop | (sign << 7)) end
append_uint(number, byte)
click to toggle source
# File lib/core_ext.rb, line 2 def append_uint(number, byte) raise 'Only support unsigned integer' if number < 0 raise 'Insufficient bytes' if number.abs >= (1 << (byte * 8)) until byte == 0 self << (number & 0xFF) number >>= 8 byte -= 1 end self end
to_sint()
click to toggle source
# File lib/core_ext.rb, line 31 def to_sint sign = (self.last & 0x80 != 0) ? (-1 ^ ((1 << ((self.size * 8) - 1)) - 1)) : 0 sign | self.to_uint end
to_uint()
click to toggle source
# File lib/core_ext.rb, line 14 def to_uint int = 0 self.each_with_index do |byte, index| int |= (byte << (index * 8)) end int end