Module: BinUtils::PureRuby
Overview
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.
Constant Summary collapse
- INT32_INT32_LE =
'VV'.freeze
- INT32_INT32_BE =
'NN'.freeze
- MIN_INT =
0
- MAX_INT64 =
2**64 - 1
- MAX_INT32 =
2**32 - 1
- MAX_INT16 =
2**16 - 1
- MAX_INT8 =
2**8 - 1
- MAX_SINT64 =
2**63 - 1
- MAX_SINT32 =
2**31 - 1
- MAX_SINT16 =
2**15 - 1
- MAX_SINT8 =
2**7 - 1
- MIN_SINT64 =
-(2**63)
- MIN_SINT32 =
-(2**31)
- MIN_SINT16 =
-(2**15)
- MIN_SINT8 =
-(2**7)
- EMPTY =
''.freeze
- ONE =
"\x01".freeze
- INT32_INT16_LE =
'Vv'.freeze
- INT16_INT32_BE =
'nN'.freeze
- INT32_INT16_INT8_LE =
'VvC'.freeze
- INT8_INT16_INT32_BE =
'CnN'.freeze
- BER_5 =
128 ** 5
- BER_6 =
128 ** 6
- BER_7 =
128 ** 7
- BER_8 =
128 ** 8
- BER_9 =
128 ** 9
- BINARY =
::Encoding::BINARY
- BER_STRING =
"wa*".freeze
- INT32LE_STRING =
"Va*".freeze
- INT32BE_STRING =
"Na*".freeze
- BER =
'w*'
- INT32LE_BER =
'Vw'
- INT32BE_BER =
'Nw'
Instance Method Summary collapse
- #append_ber!(data, *ints) ⇒ Object
- #append_ber_int16_be!(data, int1, *ints) ⇒ Object
- #append_ber_int16_le!(data, int1, *ints) ⇒ Object
- #append_ber_int24_be!(data, int1, *ints) ⇒ Object
- #append_ber_int24_le!(data, int1, *ints) ⇒ Object
- #append_ber_int32_be!(data, int1, *ints) ⇒ Object
- #append_ber_int32_le!(data, int1, *ints) ⇒ Object
- #append_ber_int8!(data, int1, *ints) ⇒ Object
- #append_bersize_ber!(data, *ints) ⇒ Object
- #append_bersize_int16_be!(str, *ints) ⇒ Object
- #append_bersize_int16_le!(str, *ints) ⇒ Object
- #append_bersize_int24_be!(str, *ints) ⇒ Object
- #append_bersize_int24_le!(str, *ints) ⇒ Object
- #append_bersize_int32_be!(str, *ints) ⇒ Object
- #append_bersize_int32_le!(str, *ints) ⇒ Object
- #append_bersize_int40_be!(str, *ints) ⇒ Object
- #append_bersize_int40_le!(str, *ints) ⇒ Object
- #append_bersize_int48_be!(str, *ints) ⇒ Object
- #append_bersize_int48_le!(str, *ints) ⇒ Object
- #append_bersize_int56_be!(str, *ints) ⇒ Object
- #append_bersize_int56_le!(str, *ints) ⇒ Object
- #append_bersize_int64_be!(str, *ints) ⇒ Object
- #append_bersize_int64_le!(str, *ints) ⇒ Object
- #append_bersize_int8!(str, *ints) ⇒ Object
- #append_bersize_string!(data, str) ⇒ Object
- #append_int16_be!(str, *ints) ⇒ Object
- #append_int16_ber_be!(data, int1, *ints) ⇒ Object
- #append_int16_ber_le!(data, int1, *ints) ⇒ Object
- #append_int16_int24_be!(data, int1, *ints) ⇒ Object
- #append_int16_int24_le!(data, int1, *ints) ⇒ Object
- #append_int16_int32_be!(data, int1, *ints) ⇒ Object
- #append_int16_int32_le!(data, int1, *ints) ⇒ Object
- #append_int16_int8_be!(data, int1, *ints) ⇒ Object
- #append_int16_int8_le!(data, int1, *ints) ⇒ Object
- #append_int16_le!(str, *ints) ⇒ Object
- #append_int24_be!(str, *ints) ⇒ Object
- #append_int24_ber_be!(data, int1, *ints) ⇒ Object
- #append_int24_ber_le!(data, int1, *ints) ⇒ Object
- #append_int24_int16_be!(data, int1, *ints) ⇒ Object
- #append_int24_int16_le!(data, int1, *ints) ⇒ Object
- #append_int24_int32_be!(data, int1, *ints) ⇒ Object
- #append_int24_int32_le!(data, int1, *ints) ⇒ Object
- #append_int24_int8_be!(data, int1, *ints) ⇒ Object
- #append_int24_int8_le!(data, int1, *ints) ⇒ Object
- #append_int24_le!(str, *ints) ⇒ Object
- #append_int32_be!(str, *ints) ⇒ Object
- #append_int32_ber_be!(data, int1, *ints) ⇒ Object
- #append_int32_ber_le!(data, int1, *ints) ⇒ Object
- #append_int32_int16_be!(data, int1, *ints) ⇒ Object
- #append_int32_int16_le!(data, int1, *ints) ⇒ Object
- #append_int32_int24_be!(data, int1, *ints) ⇒ Object
- #append_int32_int24_le!(data, int1, *ints) ⇒ Object
- #append_int32_int8_be!(data, int1, *ints) ⇒ Object
- #append_int32_int8_le!(data, int1, *ints) ⇒ Object
- #append_int32_le!(str, *ints) ⇒ Object
- #append_int32size_ber_be!(data, *ints) ⇒ Object
- #append_int32size_ber_le!(data, *ints) ⇒ Object
- #append_int32size_int16_be!(str, *ints) ⇒ Object
- #append_int32size_int16_le!(str, *ints) ⇒ Object
- #append_int32size_int24_be!(str, *ints) ⇒ Object
- #append_int32size_int24_le!(str, *ints) ⇒ Object
- #append_int32size_int32_be!(str, *ints) ⇒ Object
- #append_int32size_int32_le!(str, *ints) ⇒ Object
- #append_int32size_int40_be!(str, *ints) ⇒ Object
- #append_int32size_int40_le!(str, *ints) ⇒ Object
- #append_int32size_int48_be!(str, *ints) ⇒ Object
- #append_int32size_int48_le!(str, *ints) ⇒ Object
- #append_int32size_int56_be!(str, *ints) ⇒ Object
- #append_int32size_int56_le!(str, *ints) ⇒ Object
- #append_int32size_int64_be!(str, *ints) ⇒ Object
- #append_int32size_int64_le!(str, *ints) ⇒ Object
- #append_int32size_int8_be!(str, *ints) ⇒ Object
- #append_int32size_int8_le!(str, *ints) ⇒ Object
- #append_int32size_string_be!(data, str) ⇒ Object
- #append_int32size_string_le!(data, str) ⇒ Object
- #append_int40_be!(str, *ints) ⇒ Object
- #append_int40_le!(str, *ints) ⇒ Object
- #append_int48_be!(str, *ints) ⇒ Object
- #append_int48_le!(str, *ints) ⇒ Object
- #append_int56_be!(str, *ints) ⇒ Object
- #append_int56_le!(str, *ints) ⇒ Object
- #append_int64_be!(str, *ints) ⇒ Object
- #append_int64_le!(str, *ints) ⇒ Object
- #append_int8!(str, *ints) ⇒ Object
-
#append_int8_ber!(data, int1, *ints) ⇒ Object
complex.
- #append_int8_int16_be!(data, int1, *ints) ⇒ Object
- #append_int8_int16_le!(data, int1, *ints) ⇒ Object
- #append_int8_int24_be!(data, int1, *ints) ⇒ Object
- #append_int8_int24_le!(data, int1, *ints) ⇒ Object
- #append_int8_int32_be!(data, int1, *ints) ⇒ Object
- #append_int8_int32_le!(data, int1, *ints) ⇒ Object
- #append_string!(data, str) ⇒ Object
- #ber_size(int) ⇒ Object
- #get_ber(data, i = 0) ⇒ Object
- #get_int16_be(data, i = 0) ⇒ Object
- #get_int16_le(data, i = 0) ⇒ Object
- #get_int24_be(data, i = 0) ⇒ Object
- #get_int24_le(data, i = 0) ⇒ Object
- #get_int32_be(data, i = 0) ⇒ Object
- #get_int32_le(data, i = 0) ⇒ Object
- #get_int40_be(data, i = 0) ⇒ Object
- #get_int40_le(data, i = 0) ⇒ Object
- #get_int48_be(data, i = 0) ⇒ Object
- #get_int48_le(data, i = 0) ⇒ Object
- #get_int56_be(data, i = 0) ⇒ Object
- #get_int56_le(data, i = 0) ⇒ Object
- #get_int64_be(data, i = 0) ⇒ Object
- #get_int64_le(data, i = 0) ⇒ Object
- #get_int8(data, i = 0) ⇒ Object
- #get_sint8(data, i = 0) ⇒ Object
- #slice_ber!(data) ⇒ Object
- #slice_int16_be!(data) ⇒ Object
- #slice_int16_le!(data) ⇒ Object
- #slice_int24_be!(data) ⇒ Object
- #slice_int24_le!(data) ⇒ Object
- #slice_int32_be!(data) ⇒ Object
- #slice_int32_le!(data) ⇒ Object
- #slice_int40_be!(data) ⇒ Object
- #slice_int40_le!(data) ⇒ Object
- #slice_int48_be!(data) ⇒ Object
- #slice_int48_le!(data) ⇒ Object
- #slice_int56_be!(data) ⇒ Object
- #slice_int56_le!(data) ⇒ Object
- #slice_int64_be!(data) ⇒ Object
- #slice_int64_le!(data) ⇒ Object
- #slice_int8!(data) ⇒ Object
- #slice_sint8!(data) ⇒ Object
Instance Method Details
#append_ber!(data, *ints) ⇒ Object
728 729 730 731 732 733 734 735 736 |
# 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) ⇒ Object
1014 1015 1016 1017 1018 1019 |
# 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) ⇒ Object
986 987 988 989 990 991 |
# 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) ⇒ Object
1021 1022 1023 1024 1025 1026 |
# 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) ⇒ Object
993 994 995 996 997 998 |
# 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) ⇒ Object
1028 1029 1030 1031 1032 1033 |
# 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) ⇒ Object
1000 1001 1002 1003 1004 1005 |
# 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) ⇒ Object
979 980 981 982 983 984 |
# 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) ⇒ Object
738 739 740 741 742 743 744 |
# 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) ⇒ Object
541 542 543 544 545 546 |
# 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) ⇒ Object
492 493 494 495 496 497 |
# 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) ⇒ Object
548 549 550 551 552 553 |
# 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) ⇒ Object
499 500 501 502 503 504 |
# 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) ⇒ Object
555 556 557 558 559 560 |
# 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) ⇒ Object
506 507 508 509 510 511 |
# 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) ⇒ Object
562 563 564 565 566 567 |
# 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) ⇒ Object
513 514 515 516 517 518 |
# 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) ⇒ Object
569 570 571 572 573 574 |
# 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) ⇒ Object
520 521 522 523 524 525 |
# 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) ⇒ Object
576 577 578 579 580 581 |
# 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) ⇒ Object
527 528 529 530 531 532 |
# 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) ⇒ Object
583 584 585 586 587 588 |
# 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) ⇒ Object
534 535 536 537 538 539 |
# 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) ⇒ Object
485 486 487 488 489 490 |
# 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) ⇒ Object
710 711 712 713 |
# 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) ⇒ Object
391 392 393 394 395 396 397 398 399 400 401 402 |
# 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) ⇒ Object
895 896 897 898 899 900 |
# 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) ⇒ Object
792 793 794 795 796 797 |
# 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) ⇒ Object
909 910 911 912 913 914 |
# 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) ⇒ Object
806 807 808 809 810 811 |
# 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) ⇒ Object
916 917 918 919 920 921 |
# 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) ⇒ Object
813 814 815 816 817 818 |
# 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) ⇒ Object
902 903 904 905 906 907 |
# 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) ⇒ Object
799 800 801 802 803 804 |
# 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) ⇒ Object
296 297 298 299 300 301 302 303 304 305 306 307 |
# 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) ⇒ Object
404 405 406 407 408 409 410 411 412 413 414 415 |
# 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) ⇒ Object
923 924 925 926 927 928 |
# 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) ⇒ Object
820 821 822 823 |
# 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) ⇒ Object
937 938 939 940 941 942 |
# 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) ⇒ Object
832 833 834 835 836 837 |
# 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) ⇒ Object
944 945 946 947 948 949 |
# 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) ⇒ Object
839 840 841 842 843 844 |
# 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) ⇒ Object
930 931 932 933 934 935 |
# 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) ⇒ Object
825 826 827 828 829 830 |
# 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) ⇒ Object
309 310 311 312 313 314 315 316 317 318 319 320 321 |
# 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) ⇒ Object
417 418 419 420 421 422 423 424 425 426 427 428 429 |
# 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) ⇒ Object
951 952 953 954 955 956 |
# 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) ⇒ Object
846 847 848 849 850 851 |
# 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) ⇒ Object
965 966 967 968 969 970 |
# 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) ⇒ Object
860 861 862 863 864 865 |
# 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) ⇒ Object
972 973 974 975 976 977 |
# 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) ⇒ Object
867 868 869 870 871 872 |
# 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) ⇒ Object
958 959 960 961 962 963 |
# 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) ⇒ Object
853 854 855 856 857 858 |
# 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) ⇒ Object
323 324 325 326 327 328 329 330 331 332 333 334 335 |
# 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) ⇒ Object
754 755 756 757 758 759 760 |
# 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) ⇒ Object
746 747 748 749 750 751 752 |
# 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) ⇒ Object
653 654 655 656 657 658 |
# 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) ⇒ Object
597 598 599 600 601 602 |
# 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) ⇒ Object
660 661 662 663 664 665 |
# 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) ⇒ Object
604 605 606 607 608 609 |
# 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) ⇒ Object
667 668 669 670 671 672 |
# 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) ⇒ Object
611 612 613 614 615 616 |
# 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) ⇒ Object
674 675 676 677 678 679 |
# 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) ⇒ Object
618 619 620 621 622 623 |
# 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) ⇒ Object
681 682 683 684 685 686 |
# 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) ⇒ Object
625 626 627 628 629 630 |
# 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) ⇒ Object
688 689 690 691 692 693 |
# 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) ⇒ Object
632 633 634 635 636 637 |
# 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) ⇒ Object
695 696 697 698 699 700 |
# 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) ⇒ Object
639 640 641 642 643 644 |
# 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) ⇒ Object
646 647 648 649 650 651 |
# 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) ⇒ Object
590 591 592 593 594 595 |
# 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) ⇒ Object
720 721 722 723 |
# 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) ⇒ Object
715 716 717 718 |
# 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) ⇒ Object
431 432 433 434 435 436 437 438 439 440 441 442 443 444 |
# 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) ⇒ Object
337 338 339 340 341 342 343 344 345 346 347 348 349 350 |
# 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) ⇒ Object
446 447 448 449 450 451 452 453 454 455 456 457 |
# 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) ⇒ Object
352 353 354 355 356 357 358 359 360 361 362 363 |
# 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) ⇒ Object
459 460 461 462 463 464 465 466 467 468 469 470 |
# 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) ⇒ Object
365 366 367 368 369 370 371 372 373 374 375 376 |
# 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) ⇒ Object
472 473 474 475 476 477 478 479 480 481 482 483 |
# 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) ⇒ Object
378 379 380 381 382 383 384 385 386 387 388 389 |
# 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) ⇒ Object
284 285 286 287 288 289 290 291 292 293 294 |
# 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) ⇒ Object
complex
764 765 766 767 768 769 |
# 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) ⇒ Object
874 875 876 877 878 879 |
# 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) ⇒ Object
771 772 773 774 775 776 |
# 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) ⇒ Object
881 882 883 884 885 886 |
# 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) ⇒ Object
778 779 780 781 782 783 |
# 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) ⇒ Object
888 889 890 891 892 893 |
# 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) ⇒ Object
785 786 787 788 789 790 |
# 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) ⇒ Object
702 703 704 705 |
# 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) ⇒ Object
240 241 242 243 244 245 246 247 248 249 250 251 |
# 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) ⇒ Object
253 254 255 256 257 258 259 260 261 262 263 264 265 |
# 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) ⇒ Object
51 52 53 |
# 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) ⇒ Object
41 42 43 |
# 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) ⇒ Object
71 72 73 |
# 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) ⇒ Object
61 62 63 |
# 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) ⇒ Object
93 94 95 96 |
# 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) ⇒ Object
81 82 83 84 |
# 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) ⇒ Object
119 120 121 122 123 |
# 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) ⇒ Object
105 106 107 108 109 |
# 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) ⇒ Object
153 154 155 156 157 |
# 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) ⇒ Object
140 141 142 143 144 |
# 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) ⇒ Object
179 180 181 182 183 |
# 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) ⇒ Object
166 167 168 169 170 |
# 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) ⇒ Object
203 204 205 206 207 |
# 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) ⇒ Object
191 192 193 194 195 |
# 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) ⇒ Object
31 32 33 |
# File 'lib/bin_utils/pure_ruby.rb', line 31 def get_int8(data, i=0) data.getbyte(i) end |
#get_sint8(data, i = 0) ⇒ Object
209 210 211 212 |
# 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) ⇒ Object
267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 |
# 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) ⇒ Object
55 56 57 58 59 |
# 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) ⇒ Object
45 46 47 48 49 |
# 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) ⇒ Object
75 76 77 78 79 |
# 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) ⇒ Object
65 66 67 68 69 |
# 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) ⇒ Object
98 99 100 101 102 103 |
# 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) ⇒ Object
86 87 88 89 90 91 |
# 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) ⇒ Object
125 126 127 128 129 130 131 |
# 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) ⇒ Object
111 112 113 114 115 116 117 |
# 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) ⇒ Object
147 148 149 150 151 |
# 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) ⇒ Object
134 135 136 137 138 |
# 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) ⇒ Object
173 174 175 176 177 |
# 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) ⇒ Object
160 161 162 163 164 |
# 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) ⇒ Object
197 198 199 200 201 |
# 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) ⇒ Object
185 186 187 188 189 |
# 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) ⇒ Object
35 36 37 38 39 |
# 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) ⇒ Object
214 215 216 217 |
# File 'lib/bin_utils/pure_ruby.rb', line 214 def slice_sint8!(data) i = slice_int8!(data) i - ((i & 128) << 1) end |