Methods

Files

Class/Module Index [+]

Quicksearch

BinUtils::PureRuby

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.

Public Instance Methods

append_ber!(data, *ints) click to toggle source
# 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
append_ber_int16_be!(data, int1, *ints) click to toggle source
# 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
append_ber_int16_le!(data, int1, *ints) click to toggle source
# 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
append_ber_int24_be!(data, int1, *ints) click to toggle source
# 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
append_ber_int24_le!(data, int1, *ints) click to toggle source
# 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
append_ber_int32_be!(data, int1, *ints) click to toggle source
# 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
append_ber_int32_le!(data, int1, *ints) click to toggle source
# 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
append_ber_int8!(data, int1, *ints) click to toggle source
# 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
append_bersize_ber!(data, *ints) click to toggle source
# 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
append_bersize_int16_be!(str, *ints) click to toggle source
# 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
append_bersize_int16_le!(str, *ints) click to toggle source
# 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
append_bersize_int24_be!(str, *ints) click to toggle source
# 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
append_bersize_int24_le!(str, *ints) click to toggle source
# 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
append_bersize_int32_be!(str, *ints) click to toggle source
# 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
append_bersize_int32_le!(str, *ints) click to toggle source
# 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
append_bersize_int40_be!(str, *ints) click to toggle source
# 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
append_bersize_int40_le!(str, *ints) click to toggle source
# 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
append_bersize_int48_be!(str, *ints) click to toggle source
# 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
append_bersize_int48_le!(str, *ints) click to toggle source
# 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
append_bersize_int56_be!(str, *ints) click to toggle source
# 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
append_bersize_int56_le!(str, *ints) click to toggle source
# 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
append_bersize_int64_be!(str, *ints) click to toggle source
# 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
append_bersize_int64_le!(str, *ints) click to toggle source
# 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
append_bersize_int8!(str, *ints) click to toggle source
# 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
append_bersize_string!(data, str) click to toggle source
# 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
append_int16_be!(str, *ints) click to toggle source
# 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
append_int16_ber_be!(data, int1, *ints) click to toggle source
# 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
append_int16_ber_le!(data, int1, *ints) click to toggle source
# 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
append_int16_int24_be!(data, int1, *ints) click to toggle source
# 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
append_int16_int24_le!(data, int1, *ints) click to toggle source
# 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
append_int16_int32_be!(data, int1, *ints) click to toggle source
# 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
append_int16_int32_le!(data, int1, *ints) click to toggle source
# 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
append_int16_int8_be!(data, int1, *ints) click to toggle source
# 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
append_int16_int8_le!(data, int1, *ints) click to toggle source
# 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
append_int16_le!(str, *ints) click to toggle source
# 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
append_int24_be!(str, *ints) click to toggle source
# 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
append_int24_ber_be!(data, int1, *ints) click to toggle source
# 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
append_int24_ber_le!(data, int1, *ints) click to toggle source
# 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
append_int24_int16_be!(data, int1, *ints) click to toggle source
# 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
append_int24_int16_le!(data, int1, *ints) click to toggle source
# 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
append_int24_int32_be!(data, int1, *ints) click to toggle source
# 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
append_int24_int32_le!(data, int1, *ints) click to toggle source
# 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
append_int24_int8_be!(data, int1, *ints) click to toggle source
# 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
append_int24_int8_le!(data, int1, *ints) click to toggle source
# 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
append_int24_le!(str, *ints) click to toggle source
# 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
append_int32_be!(str, *ints) click to toggle source
# 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
append_int32_ber_be!(data, int1, *ints) click to toggle source
# 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
append_int32_ber_le!(data, int1, *ints) click to toggle source
# 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
append_int32_int16_be!(data, int1, *ints) click to toggle source
# 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
append_int32_int16_le!(data, int1, *ints) click to toggle source
# 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
append_int32_int24_be!(data, int1, *ints) click to toggle source
# 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
append_int32_int24_le!(data, int1, *ints) click to toggle source
# 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
append_int32_int8_be!(data, int1, *ints) click to toggle source
# 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
append_int32_int8_le!(data, int1, *ints) click to toggle source
# 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
append_int32_le!(str, *ints) click to toggle source
# 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
append_int32size_ber_be!(data, *ints) click to toggle source
# 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
append_int32size_ber_le!(data, *ints) click to toggle source
# 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
append_int32size_int16_be!(str, *ints) click to toggle source
# 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
append_int32size_int16_le!(str, *ints) click to toggle source
# 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
append_int32size_int24_be!(str, *ints) click to toggle source
# 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
append_int32size_int24_le!(str, *ints) click to toggle source
# 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
append_int32size_int32_be!(str, *ints) click to toggle source
# 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
append_int32size_int32_le!(str, *ints) click to toggle source
# 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
append_int32size_int40_be!(str, *ints) click to toggle source
# 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
append_int32size_int40_le!(str, *ints) click to toggle source
# 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
append_int32size_int48_be!(str, *ints) click to toggle source
# 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
append_int32size_int48_le!(str, *ints) click to toggle source
# 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
append_int32size_int56_be!(str, *ints) click to toggle source
# 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
append_int32size_int56_le!(str, *ints) click to toggle source
# 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
append_int32size_int64_be!(str, *ints) click to toggle source
# 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
append_int32size_int64_le!(str, *ints) click to toggle source
# 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
append_int32size_int8_be!(str, *ints) click to toggle source
# 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
append_int32size_int8_le!(str, *ints) click to toggle source
# 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
append_int32size_string_be!(data, str) click to toggle source
# 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
append_int32size_string_le!(data, str) click to toggle source
# 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
append_int40_be!(str, *ints) click to toggle source
# 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
append_int40_le!(str, *ints) click to toggle source
# 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
append_int48_be!(str, *ints) click to toggle source
# 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
append_int48_le!(str, *ints) click to toggle source
# 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
append_int56_be!(str, *ints) click to toggle source
# 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
append_int56_le!(str, *ints) click to toggle source
# 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
append_int64_be!(str, *ints) click to toggle source
# 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
append_int64_le!(str, *ints) click to toggle source
# 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
append_int8!(str, *ints) click to toggle source
# 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
append_int8_ber!(data, int1, *ints) click to toggle source

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
append_int8_int16_be!(data, int1, *ints) click to toggle source
# 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
append_int8_int16_le!(data, int1, *ints) click to toggle source
# 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
append_int8_int24_be!(data, int1, *ints) click to toggle source
# 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
append_int8_int24_le!(data, int1, *ints) click to toggle source
# 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
append_int8_int32_be!(data, int1, *ints) click to toggle source
# 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
append_int8_int32_le!(data, int1, *ints) click to toggle source
# 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
append_string!(data, str) click to toggle source
# 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
ber_size(int) click to toggle source
# 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
get_ber(data, i=0) click to toggle source
# 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
get_int16_be(data, i=0) click to toggle source
# 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
get_int16_le(data, i=0) click to toggle source
# 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
get_int24_be(data, i=0) click to toggle source
# 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
get_int24_le(data, i=0) click to toggle source
# 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
get_int32_be(data, i=0) click to toggle source
# 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
get_int32_le(data, i=0) click to toggle source
# 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
get_int40_be(data, i=0) click to toggle source
# 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
get_int40_le(data, i=0) click to toggle source
# 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
get_int48_be(data, i=0) click to toggle source
# 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
get_int48_le(data, i=0) click to toggle source
# 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
get_int56_be(data, i=0) click to toggle source
# 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
get_int56_le(data, i=0) click to toggle source
# 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
get_int64_be(data, i=0) click to toggle source
# 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
get_int64_le(data, i=0) click to toggle source
# 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
get_int8(data, i=0) click to toggle source
# File lib/bin_utils/pure_ruby.rb, line 31
def get_int8(data, i=0)
  data.getbyte(i)
end
get_sint8(data, i=0) click to toggle source
# 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
slice_ber!(data) click to toggle source
# 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
slice_int16_be!(data) click to toggle source
# 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
slice_int16_le!(data) click to toggle source
# 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
slice_int24_be!(data) click to toggle source
# 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
slice_int24_le!(data) click to toggle source
# 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
slice_int32_be!(data) click to toggle source
# 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
slice_int32_le!(data) click to toggle source
# 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
slice_int40_be!(data) click to toggle source
# 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
slice_int40_le!(data) click to toggle source
# 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
slice_int48_be!(data) click to toggle source
# 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
slice_int48_le!(data) click to toggle source
# 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
slice_int56_be!(data) click to toggle source
# 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
slice_int56_le!(data) click to toggle source
# 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
slice_int64_be!(data) click to toggle source
# 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
slice_int64_le!(data) click to toggle source
# 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
slice_int8!(data) click to toggle source
# File lib/bin_utils/pure_ruby.rb, line 35
def slice_int8!(data)
  int = data.getbyte(0)
  data[0, 1] = EMPTY
  int
end
slice_sint8!(data) click to toggle source
# File lib/bin_utils/pure_ruby.rb, line 214
def slice_sint8!(data)
  i = slice_int8!(data)
  i - ((i & 128) << 1)
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.