The Ruby terminal apps toolkit - プログレスバーやスピナー等ターミナルアプリを作成する際に便利なRuby用gem詰め合わせキット

シェアする

S 20170203 113558

日本生まれのオブジェクト指向プログラミング言語「Ruby」。Rails等のWebアプリでも活躍していますが、シェルスクリプトのかわりにちょっとした処理を行う、コマンドラインツール作成言語としても便利に使用することができます。

本日紹介する「The Ruby terminal apps toolkit」は、そのようなコマンドラインツールを作成する際に便利なgemをまとめて提供するツールキットです。

The Ruby terminal apps toolkitとして提供されている全部のgemをまとめて導入することもできますし、必要なgemだけを単体でインストールすることもできます。

以下実際の使用法を説明したいと思います。

使用方法

全てのgemをまとめてインストールしたい場合、以下のコマンドを入力します。

$ gem install tty

単体のgemをインストールしたい場合は以下となります。

$ gem install tty-prompt

インストール可能なgemの名前は公式サイトトップを見れば分かります。

プロンプト機能を提供するtty-promptのほか、プログレスバー機能を提供するtty-progressbar、スピナーのtty-spinner、シェルコマンドを実行するtty-command、テーブル表示のtty-table…などが存在することがわかります。

全部まとめてインストールする「gem install tty」を実行すると、これらの個別gemがまとめてインストールされるのです。

S 20170203 114436

具体的な使用法は、gemそれぞれのGitHubページに掲載されています。例えばtty-prompttty-progressbartty-tableの使用例は次のようになります。

# coding: utf-8
require 'tty-prompt'
require 'tty-progressbar'
require 'tty-table'

# プロンプト
prompt = TTY::Prompt.new
choices = %w(vodka beer wine whisky bourbon)
prompt.multi_select("Select drinks?", choices)

# プログレスバー
bar = TTY::ProgressBar.new("downloading [:bar]", total: 30)
30.times do
  sleep(0.1)
  bar.advance(1)
end

# テーブル
table = TTY::Table.new ['header1','header2'], [['a1', 'a2'], ['b1', 'b2']]
print table.render(:ascii)

手作業で実装しようとするとめんどくさい各種処理が直感的に記述できることがわかります。

S 20170203 115026

▲実行例。進捗状況の表示に便利なプログレスバーや、データを分かりやすく表示できるテーブルがターミナルに描画できました(プロンプトはユーザーの入力を受け取る機能です)。

まとめ

The Ruby terminal apps toolkitを利用すれば、コマンドラインツールを作成する際に必要となる「ちょっと気の利いた処理」を簡単に追加することができます。日常使いのツールを作成したいRuby開発者必見のライブラリといえるでしょう。

スポンサーリンク
レクタングル(大)広告
レクタングル(大)広告

シェアする

フォローする