Pure Ruby implementation of bin utils. It is provided just reference implementation, so that I could write tests before writting native code. You should not expect performance from it.
# File lib/bin_utils/pure_ruby.rb, line 728 def append_ber!(data, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] if ints.size == 1 && ints[0] < 128 data << ints[0] else data << ints.pack(BER) end end
# File lib/bin_utils/pure_ruby.rb, line 1014 def append_ber_int16_be!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_ber!(data, int1) append_int16_be!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 986 def append_ber_int16_le!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_ber!(data, int1) append_int16_le!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 1021 def append_ber_int24_be!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_ber!(data, int1) append_int24_be!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 993 def append_ber_int24_le!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_ber!(data, int1) append_int24_le!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 1028 def append_ber_int32_be!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_ber!(data, int1) append_int32_be!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 1000 def append_ber_int32_le!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_ber!(data, int1) append_int32_le!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 979 def append_ber_int8!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_ber!(data, int1) append_int8!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 738 def append_bersize_ber!(data, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] bers = ints.pack(BER) append_ber!(data, bers.size) data << bers end
# File lib/bin_utils/pure_ruby.rb, line 541 def append_bersize_int16_be!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_ber!(str, ints.size * 2) append_int16_be!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 492 def append_bersize_int16_le!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_ber!(str, ints.size * 2) append_int16_le!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 548 def append_bersize_int24_be!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_ber!(str, ints.size * 3) append_int24_be!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 499 def append_bersize_int24_le!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_ber!(str, ints.size * 3) append_int24_le!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 555 def append_bersize_int32_be!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_ber!(str, ints.size * 4) append_int32_be!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 506 def append_bersize_int32_le!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_ber!(str, ints.size * 4) append_int32_le!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 562 def append_bersize_int40_be!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_ber!(str, ints.size * 5) append_int40_be!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 513 def append_bersize_int40_le!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_ber!(str, ints.size * 5) append_int40_le!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 569 def append_bersize_int48_be!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_ber!(str, ints.size * 6) append_int48_be!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 520 def append_bersize_int48_le!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_ber!(str, ints.size * 6) append_int48_le!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 576 def append_bersize_int56_be!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_ber!(str, ints.size * 7) append_int56_be!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 527 def append_bersize_int56_le!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_ber!(str, ints.size * 7) append_int56_le!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 583 def append_bersize_int64_be!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_ber!(str, ints.size * 8) append_int64_be!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 534 def append_bersize_int64_le!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_ber!(str, ints.size * 8) append_int64_le!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 485 def append_bersize_int8!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_ber!(str, ints.size) append_int8!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 710 def append_bersize_string!(data, str) data ||= ''.force_encoding(BINARY) data << [str.bytesize, str].pack(BER_STRING) end
# File lib/bin_utils/pure_ruby.rb, line 391 def append_int16_be!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] i = 0 sz = ints.size while i < sz int = ints[i] str << ((int>>8) & 255) << (int & 255) i += 1 end str end
# File lib/bin_utils/pure_ruby.rb, line 895 def append_int16_ber_be!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int16_be!(data, int1) append_ber!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 792 def append_int16_ber_le!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int16_le!(data, int1) append_ber!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 909 def append_int16_int24_be!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int16_be!(data, int1) append_int24_be!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 806 def append_int16_int24_le!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int16_le!(data, int1) append_int24_le!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 916 def append_int16_int32_be!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int16_be!(data, int1) append_int32_be!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 813 def append_int16_int32_le!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int16_le!(data, int1) append_int32_le!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 902 def append_int16_int8_be!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int16_be!(data, int1) append_int8!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 799 def append_int16_int8_le!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int16_le!(data, int1) append_int8!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 296 def append_int16_le!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] i = 0 sz = ints.size while i < sz int = ints[i] str << (int & 255) << ((int>>8) & 255) i += 1 end str end
# File lib/bin_utils/pure_ruby.rb, line 404 def append_int24_be!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] i = 0 sz = ints.size while i < sz int = ints[i] str << ((int>>16) & 255) << ((int>>8) & 255) << (int & 255) i += 1 end str end
# File lib/bin_utils/pure_ruby.rb, line 923 def append_int24_ber_be!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int24_be!(data, int1) append_ber!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 820 def append_int24_ber_le!(data, int1, *ints) append_int24_le!(data, int1) append_ber!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 937 def append_int24_int16_be!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int24_be!(data, int1) append_int16_be!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 832 def append_int24_int16_le!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int24_le!(data, int1) append_int16_le!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 944 def append_int24_int32_be!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int24_be!(data, int1) append_int32_be!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 839 def append_int24_int32_le!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int24_le!(data, int1) append_int32_le!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 930 def append_int24_int8_be!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int24_be!(data, int1) append_int8!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 825 def append_int24_int8_le!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int24_le!(data, int1) append_int8!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 309 def append_int24_le!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] i = 0 sz = ints.size while i < sz int = ints[i] str << (int & 255) << ((int>>8) & 255) << ((int>>16) & 255) i += 1 end str end
# File lib/bin_utils/pure_ruby.rb, line 417 def append_int32_be!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] i = 0 sz = ints.size while i < sz int = ints[i] str << ((int>>24) & 255) << ((int>>16) & 255) << ((int>>8) & 255) << (int & 255) i += 1 end str end
# File lib/bin_utils/pure_ruby.rb, line 951 def append_int32_ber_be!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int32_be!(data, int1) append_ber!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 846 def append_int32_ber_le!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int32_le!(data, int1) append_ber!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 965 def append_int32_int16_be!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int32_be!(data, int1) append_int16_be!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 860 def append_int32_int16_le!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int32_le!(data, int1) append_int16_le!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 972 def append_int32_int24_be!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int32_be!(data, int1) append_int24_be!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 867 def append_int32_int24_le!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int32_le!(data, int1) append_int24_le!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 958 def append_int32_int8_be!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int32_be!(data, int1) append_int8!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 853 def append_int32_int8_le!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int32_le!(data, int1) append_int8!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 323 def append_int32_le!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] i = 0 sz = ints.size while i < sz int = ints[i] str << (int & 255) << ((int>>8) & 255) << ((int>>16) & 255) << ((int>>24) & 255) i += 1 end str end
# File lib/bin_utils/pure_ruby.rb, line 754 def append_int32size_ber_be!(data, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] bers = ints.pack(BER) append_int32_be!(data, bers.size) data << bers end
# File lib/bin_utils/pure_ruby.rb, line 746 def append_int32size_ber_le!(data, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] bers = ints.pack(BER) append_int32_le!(data, bers.size) data << bers end
# File lib/bin_utils/pure_ruby.rb, line 653 def append_int32size_int16_be!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int32_be!(str, ints.size * 2) append_int16_be!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 597 def append_int32size_int16_le!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int32_le!(str, ints.size * 2) append_int16_le!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 660 def append_int32size_int24_be!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int32_be!(str, ints.size * 3) append_int24_be!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 604 def append_int32size_int24_le!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int32_le!(str, ints.size * 3) append_int24_le!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 667 def append_int32size_int32_be!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int32_be!(str, ints.size * 4) append_int32_be!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 611 def append_int32size_int32_le!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int32_le!(str, ints.size * 4) append_int32_le!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 674 def append_int32size_int40_be!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int32_be!(str, ints.size * 5) append_int40_be!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 618 def append_int32size_int40_le!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int32_le!(str, ints.size * 5) append_int40_le!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 681 def append_int32size_int48_be!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int32_be!(str, ints.size * 6) append_int48_be!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 625 def append_int32size_int48_le!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int32_le!(str, ints.size * 6) append_int48_le!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 688 def append_int32size_int56_be!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int32_be!(str, ints.size * 7) append_int56_be!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 632 def append_int32size_int56_le!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int32_le!(str, ints.size * 7) append_int56_le!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 695 def append_int32size_int64_be!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int32_be!(str, ints.size * 8) append_int64_be!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 639 def append_int32size_int64_le!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int32_le!(str, ints.size * 8) append_int64_le!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 646 def append_int32size_int8_be!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int32_be!(str, ints.size) append_int8!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 590 def append_int32size_int8_le!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] append_int32_le!(str, ints.size) append_int8!(str, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 720 def append_int32size_string_be!(data, str) data ||= ''.force_encoding(BINARY) data << [str.bytesize, str].pack(INT32BE_STRING) end
# File lib/bin_utils/pure_ruby.rb, line 715 def append_int32size_string_le!(data, str) data ||= ''.force_encoding(BINARY) data << [str.bytesize, str].pack(INT32LE_STRING) end
# File lib/bin_utils/pure_ruby.rb, line 431 def append_int40_be!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] i = 0 sz = ints.size while i < sz int = ints[i] str << ((int>>32) & 255) << ((int>>24) & 255) << ((int>>16) & 255) << ((int>>8) & 255) << (int & 255) i += 1 end str end
# File lib/bin_utils/pure_ruby.rb, line 337 def append_int40_le!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] i = 0 sz = ints.size while i < sz int = ints[i] str << (int & 255) << ((int>>8) & 255) << ((int>>16) & 255) << ((int>>24) & 255) << ((int>>32) & 255) i += 1 end str end
# File lib/bin_utils/pure_ruby.rb, line 446 def append_int48_be!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] i = 0 sz = ints.size while i < sz int = ints[i] str << [int >> 32, int & MAX_INT32].pack(INT16_INT32_BE) i += 1 end str end
# File lib/bin_utils/pure_ruby.rb, line 352 def append_int48_le!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] i = 0 sz = ints.size while i < sz int = ints[i] str << [int & MAX_INT32, int >> 32].pack(INT32_INT16_LE) i += 1 end str end
# File lib/bin_utils/pure_ruby.rb, line 459 def append_int56_be!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] i = 0 sz = ints.size while i < sz int = ints[i] str << [(int >> 48), (int >> 32) & MAX_INT16, int & MAX_INT32].pack(INT8_INT16_INT32_BE) i += 1 end str end
# File lib/bin_utils/pure_ruby.rb, line 365 def append_int56_le!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] i = 0 sz = ints.size while i < sz int = ints[i] str << [int & MAX_INT32, (int >> 32) & MAX_INT16, (int >> 48)].pack(INT32_INT16_INT8_LE) i += 1 end str end
# File lib/bin_utils/pure_ruby.rb, line 472 def append_int64_be!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] i = 0 sz = ints.size while i < sz int = ints[i] str << [int >> 32, int & MAX_INT32].pack(INT32_INT32_BE) i += 1 end str end
# File lib/bin_utils/pure_ruby.rb, line 378 def append_int64_le!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] i = 0 sz = ints.size while i < sz int = ints[i] str << [int & MAX_INT32, int >> 32].pack(INT32_INT32_LE) i += 1 end str end
# File lib/bin_utils/pure_ruby.rb, line 284 def append_int8!(str, *ints) str ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] i = 0 sz = ints.size while i < sz str << (ints[i] & 255) i += 1 end str end
complex
# File lib/bin_utils/pure_ruby.rb, line 764 def append_int8_ber!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] data << (int1 & 255) append_ber!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 874 def append_int8_int16_be!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] data << (int1 & 255) append_int16_be!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 771 def append_int8_int16_le!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] data << (int1 & 255) append_int16_le!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 881 def append_int8_int24_be!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] data << (int1 & 255) append_int24_be!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 778 def append_int8_int24_le!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] data << (int1 & 255) append_int24_le!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 888 def append_int8_int32_be!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] data << (int1 & 255) append_int32_be!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 785 def append_int8_int32_le!(data, int1, *ints) data ||= ''.force_encoding(BINARY) ints = ints[0] if ints.size == 1 && Array === ints[0] data << (int1 & 255) append_int32_le!(data, *ints) end
# File lib/bin_utils/pure_ruby.rb, line 702 def append_string!(data, str) data ||= ''.force_encoding(BINARY) data << str.dup.force_encoding(BINARY) end
# File lib/bin_utils/pure_ruby.rb, line 240 def ber_size(int) int < 128 ? 1 : int < 16384 ? 2 : int < 2097153 ? 3 : int < 268435456 ? 4 : int < BER_5 ? 5 : int < BER_6 ? 6 : int < BER_7 ? 7 : int < BER_8 ? 8 : int < BER_9 ? 9 : 10 end
# File lib/bin_utils/pure_ruby.rb, line 253 def get_ber(data, i=0) res = 0 while true if (byte = data.getbyte(i)) <= 127 res += byte break else res = (res + (byte - 128)) * 128 i += 1 end end res end
# File lib/bin_utils/pure_ruby.rb, line 51 def get_int16_be(data, i=0) data.getbyte(i+1) + data.getbyte(i) * 256 end
# File lib/bin_utils/pure_ruby.rb, line 41 def get_int16_le(data, i=0) data.getbyte(i) + data.getbyte(i+1) * 256 end
# File lib/bin_utils/pure_ruby.rb, line 71 def get_int24_be(data, i=0) data.getbyte(i+2) + data.getbyte(i+1) * 256 + data.getbyte(i) * 65536 end
# File lib/bin_utils/pure_ruby.rb, line 61 def get_int24_le(data, i=0) data.getbyte(i) + data.getbyte(i+1) * 256 + data.getbyte(i+2) * 65536 end
# File lib/bin_utils/pure_ruby.rb, line 93 def get_int32_be(data, i=0) (data.getbyte(i+3) + data.getbyte(i+2) * 256 + data.getbyte(i+1) * 65536 + data.getbyte(i) * 16777216) end
# File lib/bin_utils/pure_ruby.rb, line 81 def get_int32_le(data, i=0) (data.getbyte(i) + data.getbyte(i+1) * 256 + data.getbyte(i+2) * 65536 + data.getbyte(i+3) * 16777216) end
# File lib/bin_utils/pure_ruby.rb, line 119 def get_int40_be(data, i=0) (data.getbyte(i+4) + data.getbyte(i+3) * 256 + data.getbyte(i+2) * 65536 + data.getbyte(i+1) * 16777216 + (data.getbyte(i) << 32)) end
# File lib/bin_utils/pure_ruby.rb, line 105 def get_int40_le(data, i=0) (data.getbyte(i) + data.getbyte(i+1) * 256 + data.getbyte(i+2) * 65536 + data.getbyte(i+3) * 16777216 + (data.getbyte(i+4) << 32)) end
# File lib/bin_utils/pure_ruby.rb, line 153 def get_int48_be(data, i=0) data = data.byteslice(i, 6) if i > 0 int1, int0 = data.unpack(INT16_INT32_BE) int0 + (int1 << 32) end
# File lib/bin_utils/pure_ruby.rb, line 140 def get_int48_le(data, i=0) data = data.byteslice(i, 6) if i > 0 int0, int1 = data.unpack(INT32_INT16_LE) int0 + (int1 << 32) end
# File lib/bin_utils/pure_ruby.rb, line 179 def get_int56_be(data, i=0) data = data.byteslice(i, 7) if i > 0 int2, int1, int0 = data.unpack(INT8_INT16_INT32_BE) int0 + (int1 << 32) + (int2 << 48) end
# File lib/bin_utils/pure_ruby.rb, line 166 def get_int56_le(data, i=0) data = data.byteslice(i, 7) if i > 0 int0, int1, int2 = data.unpack(INT32_INT16_INT8_LE) int0 + (int1 << 32) + (int2 << 48) end
# File lib/bin_utils/pure_ruby.rb, line 203 def get_int64_be(data, i=0) data = data.byteslice(i, 8) if i > 0 int1, int0 = data.unpack(INT32_INT32_BE) int0 + (int1 << 32) end
# File lib/bin_utils/pure_ruby.rb, line 191 def get_int64_le(data, i=0) data = data.byteslice(i, 8) if i > 0 int0, int1 = data.unpack(INT32_INT32_LE) int0 + (int1 << 32) end
# File lib/bin_utils/pure_ruby.rb, line 31 def get_int8(data, i=0) data.getbyte(i) end
# File lib/bin_utils/pure_ruby.rb, line 209 def get_sint8(data, i=0) i = get_int8(data, i) i - ((i & 128) << 1) end
# File lib/bin_utils/pure_ruby.rb, line 267 def slice_ber!(data) res = 0 pos = 0 while true if (byte = data.getbyte(pos)) <= 127 res += byte break else res = (res + (byte - 128)) * 128 pos += 1 end end data[0, pos+1] = EMPTY res end
# File lib/bin_utils/pure_ruby.rb, line 55 def slice_int16_be!(data) int = data.getbyte(1) + data.getbyte(0) * 256 data[0, 2] = EMPTY int end
# File lib/bin_utils/pure_ruby.rb, line 45 def slice_int16_le!(data) int = data.getbyte(0) + data.getbyte(1) * 256 data[0, 2] = EMPTY int end
# File lib/bin_utils/pure_ruby.rb, line 75 def slice_int24_be!(data) int = data.getbyte(2) + data.getbyte(1) * 256 + data.getbyte(0) * 65536 data[0, 3] = EMPTY int end
# File lib/bin_utils/pure_ruby.rb, line 65 def slice_int24_le!(data) int = data.getbyte(0) + data.getbyte(1) * 256 + data.getbyte(2) * 65536 data[0, 3] = EMPTY int end
# File lib/bin_utils/pure_ruby.rb, line 98 def slice_int32_be!(data) int = (data.getbyte(3) + data.getbyte(2) * 256 + data.getbyte(1) * 65536 + data.getbyte(0) * 16777216) data[0, 4] = EMPTY int end
# File lib/bin_utils/pure_ruby.rb, line 86 def slice_int32_le!(data) int = (data.getbyte(0) + data.getbyte(1) * 256 + data.getbyte(2) * 65536 + data.getbyte(3) * 16777216) data[0, 4] = EMPTY int end
# File lib/bin_utils/pure_ruby.rb, line 125 def slice_int40_be!(data) int = (data.getbyte(4) + data.getbyte(3) * 256 + data.getbyte(2) * 65536 + data.getbyte(1) * 16777216 + (data.getbyte(0) << 32)) data[0, 5] = EMPTY int end
# File lib/bin_utils/pure_ruby.rb, line 111 def slice_int40_le!(data) int = (data.getbyte(0) + data.getbyte(1) * 256 + data.getbyte(2) * 65536 + data.getbyte(3) * 16777216 + (data.getbyte(4) << 32)) data[0, 5] = EMPTY int end
# File lib/bin_utils/pure_ruby.rb, line 147 def slice_int48_be!(data) int1, int0 = data.unpack(INT16_INT32_BE) data[0, 6] = EMPTY int0 + (int1 << 32) end
# File lib/bin_utils/pure_ruby.rb, line 134 def slice_int48_le!(data) int0, int1 = data.unpack(INT32_INT16_LE) data[0, 6] = EMPTY int0 + (int1 << 32) end
# File lib/bin_utils/pure_ruby.rb, line 173 def slice_int56_be!(data) int2, int1, int0 = data.unpack(INT8_INT16_INT32_BE) data[0, 7] = EMPTY int0 + (int1 << 32) + (int2 << 48) end
# File lib/bin_utils/pure_ruby.rb, line 160 def slice_int56_le!(data) int0, int1, int2 = data.unpack(INT32_INT16_INT8_LE) data[0, 7] = EMPTY int0 + (int1 << 32) + (int2 << 48) end
# File lib/bin_utils/pure_ruby.rb, line 197 def slice_int64_be!(data) int1, int0 = data.unpack(INT32_INT32_BE) data[0, 8] = EMPTY int0 + (int1 << 32) end
# File lib/bin_utils/pure_ruby.rb, line 185 def slice_int64_le!(data) int0, int1 = data.unpack(INT32_INT32_LE) data[0, 8] = EMPTY int0 + (int1 << 32) end
Generated with the Darkfish Rdoc Generator 2.