Ruby 3.3 リファレンスマニュアル > ライブラリ一覧 > io/consoleライブラリ > IOクラス > raw

instance method IO#raw

raw(min: 1, time: 0, intr: false) {|io| ... } -> object[permalink][rdoc] [added by io/console]

raw モード、行編集を無効にして指定されたブロックを評価します。

ブロック引数には self が渡されます。ブロックを評価した結果を返します。

[PARAM] min:
入力操作 (read) 時に受信したい最小のバイト数を指定します。min 値以上のバイト数を受信するまで、操作がブロッキングされます。
[PARAM] time:
タイムアウトするまでの秒数を指定します。time よりも min が優先されるため、入力バイト数が min 値以上になるまでは、time 値に関わらず操作がブロッキングされます。
[PARAM] intr:
trueを指定した場合は、割り込み (interrupt) 、中止 (quit) 、停止 (suspend) の各シグナルを生成する制御文字が有効になります。端末の制御については、 termios のマニュアル:https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/termios.h.html を参照してください。
[EXCEPTION] LocalJumpError:
ブロックを指定しなかった場合に発生します。
[EXCEPTION] ArgumentError:
intr に true または false 以外の値を指定した場合に発生します。

以下の例では、標準入力からエコーバックなしで文字列を一行読み込みます。

require "io/console"
STDIN.raw(&:gets)