superclass=
type=module
library=readline
extended=
included=

GNU Readline によるコマンドライン入力インタフェースを提供するモジュールです。

GNU Readline 互換ライブラリのひとつである Edit Line(libedit) もサポートしています。

  * [[url:http://www.gnu.org/directory/readline.html]]
  * [[url:http://www.thrysoee.dk/editline/]]

Readline.readline を使用してユーザからの入力を取得できます。
このとき、 GNU Readline のように入力の補完や
Emacs のようなキー操作などができます。

例: プロンプト"> "を表示して、ユーザからの入力を取得する。

  while buf = Readline.readline("> ", true)
    print("-> ", buf, "\n")
  end

ユーザが入力した内容を履歴(以下、ヒストリ)として記録することができます。
定数 [[c:Readline::HISTORY]] を使用して入力履歴にアクセスできます。
例えば、Readline::HISTORY.to_a により、
全ての入力した内容を文字列の配列として取得できます。

例: ヒストリを配列として取得する。

  while buf = Readline.readline("> ", true)
    p Readline::HISTORY.to_a
    print("-> ", buf, "\n")
  end
