ruby-cli について
Thor と Zeitwerk を使った Ruby コマンドラインツールの開発を案内するスキルです。gem の初期構築やコマンド追加、Gum によるターミナル UI の作成方法を扱います。
主な機能
- 01CLI gem の初期構築ガイド
- 02Thor のコマンドとサブコマンドのパターン
- 03Zeitwerk の自動読み込み規約
- 04Thor による出力スタイルの指針
- 05Gum を使った豊富なターミナル UI
活用シーン
- 01Ruby CLI gem の初期構築
- 02ツールへのコマンドやサブコマンド追加
- 03ターミナルの表、プロンプト、進捗表示の作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ steveclarke/ dotfiles --skill ruby-cliインストール後、Claude Code で/ruby-cliを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/bootstrap.mdgum.mdpatterns.md詳細
Ruby CLI 開発
コマンドには Thor、オートローディングには Zeitwerk を使用して Ruby CLI ツールを構築します。
クイックナビゲーション
- 新しい CLI gem を一から作成しますか? references/bootstrap.md をご覧ください
- コマンドやサブコマンドを追加しますか? references/patterns.md をご覧ください
- Thor の構文リファレンスをお探しですか? references/patterns.md をご覧ください
- Gum でリッチなターミナル UI を作成しますか? references/gum.md をご覧ください
基本原則
- 簡潔なクラス宣言を使用します:
class GemName::Cli::Main < GemName::Cli::Base - ユーティリティモジュールでは
module_functionではなくextend selfを使用します - Base クラスは最小限に保ち、パターンが見えてきたらヘルパーを追加します
出力のスタイル設定
基本的な出力には、Thor 組み込みの say "message", :color を使用します。
ヘッダー、テーブル、スピナー、確認などのリッチなターミナル UI には、Gum gem を使用します:
ui.header("Section Title") # branded header with border
ui.success("Done!") # green checkmark
ui.error("Failed") # red X
ui.table(rows, columns: [...]) # formatted table
ui.spin("Working...") { ... } # spinner during work
セットアップと API の全容については、references/gum.md をご覧ください。
ヒントと注意点
- UI モジュールに
# rubocop:disable Rails/Outputを追加します(CLI では stdout への出力は意図したものです) - gum gem には一般的なプラットフォーム向けの gum バイナリが同梱されています。
GUM_INSTALL_DIRを指定すると、別の場所にあるシステムインストールを使用できます
コメント
Markdown 対応