Ruby CLI ツールで数百行の出力を表示する方法
概要
大量のデータを出力する必要がある Ruby CLI ツールを構築しています。このスクリプトは変更のリストを表示し、次の変更セットに進むかどうかをユーザーに確認します。この差分には、必然的に非常に詳細な構造化された出力が含まれます。現在、出力はユーザーの端末設定によって制限されています。プログラムの場合と同様に、ユーザーが出力を無限にスクロール/ページ移動できる、出力を表示する方法を見つけたいと考えています。
詳細な説明: CLI を作成するために Thor を使用しています。ユーザーはAlpine Linux Dockerコンテナでプログラムを実行します。
解決策
ハイライン gem を使用して端末のサイズをクエリし、それに応じて出力をフォーマットします。 2 番目の値の行数を表示した後、キーを押すように求めます。サイズはターミナル ウィンドウのサイズを変更することで変更できるため、サイズを保存して再利用しないことに注意してください。
require 'highline'
terminal = HighLine::Terminal::IOConsole.new(STDIN,STDOUT)
puts terminal.terminal_size.inspect
=> [80, 24]