mcpField
R
ruby-cli

ruby-cli

github.com/steveclarke開発36123 回インストール今日更新
リポジトリ

ruby-cli について

Thor と Zeitwerk を使った Ruby コマンドラインツールの開発を案内するスキルです。gem の初期構築やコマンド追加、Gum によるターミナル UI の作成方法を扱います。

主な機能

  1. 01CLI gem の初期構築ガイド
  2. 02Thor のコマンドとサブコマンドのパターン
  3. 03Zeitwerk の自動読み込み規約
  4. 04Thor による出力スタイルの指針
  5. 05Gum を使った豊富なターミナル UI

活用シーン

  1. 01Ruby CLI gem の初期構築
  2. 02ツールへのコマンドやサブコマンド追加
  3. 03ターミナルの表、プロンプト、進捗表示の作成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/steveclarke/dotfiles --skill ruby-cli

インストール後、Claude Code で/ruby-cliを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
bootstrap.md
gum.md
patterns.md

詳細

Ruby CLI 開発

コマンドには Thor、オートローディングには Zeitwerk を使用して Ruby CLI ツールを構築します。

クイックナビゲーション

基本原則

  • 簡潔なクラス宣言を使用します: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 を指定すると、別の場所にあるシステムインストールを使用できます

コメント