Ruby 3.3 リファレンスマニュアル

instance method IO::Buffer#each_byte

each_byte(offset = 0, count = nil) {|byte| ... } -> selfRuby 3.2 から[permalink][rdoc][edit]
each_byte(offset = 0, count = nil) -> Enumerator

バッファの offset の位置から 1 バイトずつ読み出し、ブロックに渡して繰り返します。

ブロックを省略した場合は Enumerator を返します。

[PARAM] offset:
読み出しを開始する位置をバッファの先頭からのバイト数で指定します。
[PARAM] count:
読み出すバイト数を指定します。省略した場合はバッファの末尾まで読み出します。

Ruby 3.4 以前では引数が正しく扱われません。引数を 1 つだけ渡した場合は無視されて先頭から末尾まで読み出し、2 つ渡した場合は 2 番目の引数が読み出しの開始位置として使われます。位置や個数を指定するには Ruby 4.0 以降が必要です。

IO::Buffer.for("Hello").each_byte do |byte|
  p byte
end
# => 72
#    101
#    108
#    108
#    111

[SEE_ALSO] IO::Buffer#each