readmultiline(prompt = "", add_hist = false) { |text| ... } -> String | nilRuby 2.7 から[permalink][rdoc][edit]-
promptを出力し、ユーザからの複数行の入力を待ちます。一行の入力が確定するたびに、それまでに入力された全体の文字列
textを引数としてブロックが呼ばれます。ブロックが真を返すと入力を終了し、入力された複数行全体をひとつの文字列(各行を"\n"で連結したもの)として返します。返り値の末尾に改行は含まれません。add_histが真であれば、入力した複数行全体をひとつのエントリとして入力履歴 Reline::HISTORY に追加します。空の入力は追加されません。何も入力していない状態で EOF(UNIX では ^D)を入力するなどで、ユーザからの入力がない場合は
nilを返します。- [PARAM]
prompt: -
カーソルの前に表示する文字列を指定します。デフォルトは
""です。 - [PARAM]
add_hist: - 真ならば、入力した文字列を入力履歴に追加します。デフォルトは偽です。
- [EXCEPTION]
ArgumentError: - ブロックを省略した場合に発生します。
require 'reline' code = Reline.readmultiline("> ", true) { |text| text.split("\n").last == "end" } puts code - [PARAM]