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

class IO::Console::Mode

[edit]

aliases: IO::ConsoleMode

要約

端末の入出力モードを表すクラスです。

現在のモードは IO#console_mode で取得します。new でインスタンスを作ることはできません。取得したモードは dup でコピーできます。

このクラスのメソッドは self が保持するモードの値を変更するだけで、端末には反映されません。変更したモードを端末に反映するには IO#console_mode= に渡してください。

Ruby 4.1 で IO::ConsoleMode から IO::Console::Mode に改名されました。旧名の IO::ConsoleMode は非推奨の別名として残っていますが、参照すると非推奨の警告が出ます。

require "io/console"
mode = STDIN.console_mode
noecho = mode.dup
noecho.echo = false
STDIN.console_mode = noecho  # エコーバックを無効にする
begin
  password = STDIN.gets
ensure
  STDIN.console_mode = mode  # 元に戻す
end

[SEE_ALSO] IO#console_mode, IO#console_mode=

目次

インスタンスメソッド

インスタンスメソッド

echo? -> boolRuby 4.1 から[permalink][rdoc][edit]
echo -> bool

self で文字入力時のエコーバックが有効かどうかを返します。

[SEE_ALSO] IO#echo?

echo=(flag)Ruby 2.7.0 から[permalink][rdoc][edit]

文字入力時のエコーバックを有効にするかどうかを self に設定します。

[PARAM] flag:
真を指定した場合はエコーバックを有効に、偽を指定した場合は無効にします。

[SEE_ALSO] IO#echo=

min -> Integer | nilRuby 4.1 から[permalink][rdoc][edit]

入力操作 (read) 時に受信したい最小のバイト数(termios の VMIN)を返します。

termios を利用できない環境(Windows)では nil を返します。

[SEE_ALSO] IO#raw

min=(min)Ruby 4.1 から[permalink][rdoc][edit]

入力操作 (read) 時に受信したい最小のバイト数(termios の VMIN)を設定します。

[PARAM] min:
最小のバイト数を整数で指定します。nil を指定した場合は 1 になります。0 から 255 の範囲外の値を指定した場合は 255 になります。

termios を利用できない環境(Windows)では何もしません。

raw(min: 1, time: 0, intr: false) -> IO::Console::ModeRuby 2.7.0 から[permalink][rdoc][edit]

self を raw モードに変更したコピーを返します。self は変更しません。

キーワード引数の意味は IO#raw と同じです。

[PARAM] min:
入力操作 (read) 時に受信したい最小のバイト数を指定します。
[PARAM] time:
タイムアウトするまでの秒数を指定します。
[PARAM] intr:
true を指定した場合は、割り込み (interrupt) 、中止 (quit) 、停止 (suspend) の各シグナルを生成する制御文字が有効になります。
[EXCEPTION] ArgumentError:
intr に true または false 以外の値を指定した場合に発生します。

[SEE_ALSO] IO#raw

raw!(min: 1, time: 0, intr: false) -> selfRuby 2.7.0 から[permalink][rdoc][edit]

self を raw モードに変更します。

キーワード引数の意味は IO#raw と同じです。

[PARAM] min:
入力操作 (read) 時に受信したい最小のバイト数を指定します。
[PARAM] time:
タイムアウトするまでの秒数を指定します。
[PARAM] intr:
true を指定した場合は、割り込み (interrupt) 、中止 (quit) 、停止 (suspend) の各シグナルを生成する制御文字が有効になります。
[EXCEPTION] ArgumentError:
intr に true または false 以外の値を指定した場合に発生します。

[SEE_ALSO] IO#raw!

time -> Rational | nilRuby 4.1 から[permalink][rdoc][edit]

入力操作 (read) がタイムアウトするまでの秒数(termios の VTIME)を Rational で返します。値は 0.1 秒単位です。

termios を利用できない環境(Windows)では nil を返します。

[SEE_ALSO] IO#raw

time=(time)Ruby 4.1 から[permalink][rdoc][edit]

入力操作 (read) がタイムアウトするまでの秒数(termios の VTIME)を設定します。

[PARAM] time:
秒数を数値で指定します。0.1 秒単位に切り捨てられ、25.5 秒を超える値は 25.5 秒になります。nil を指定した場合は 0 になります。

termios を利用できない環境(Windows)では何もしません。

virtual_terminal_processing? -> boolRuby 4.1 から[permalink][rdoc][edit]
virtual_terminal_processing=(enabled)

出力時に仮想端末シーケンス(エスケープシーケンス)を処理するかどうかを返し、または設定します。

このメソッドは Windows でのみ使用できます。

[PARAM] enabled:
真を指定した場合は処理を有効に、偽を指定した場合は無効にします。
wrap_at_eol_output? -> boolRuby 4.1 から[permalink][rdoc][edit]
wrap_at_eol_output=(enabled)

出力が行末に達したときに次の行へ折り返すかどうかを返し、または設定します。

このメソッドは Windows でのみ使用できます。

[PARAM] enabled:
真を指定した場合は折り返しを有効に、偽を指定した場合は無効にします。