关于 ruby-cli
这项 Skill 指导使用 Thor 和 Zeitwerk 构建 Ruby 命令行工具,涵盖 gem 初始化、添加命令,以及使用 Gum 制作终端界面。
主要功能
- 01提供 CLI gem 初始化指引
- 02Thor 命令和子命令模式
- 03Zeitwerk 自动加载约定
- 04Thor 输出样式指引
- 05使用 Gum 构建丰富的终端界面
适用场景
- 01初始化 Ruby 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 构建 Ruby CLI 工具来处理命令,使用 Zeitwerk 实现自动加载。
快速导航
- 要从零开始创建新的 CLI gem? 请参阅 references/bootstrap.md
- 要添加命令或子命令? 请参阅 references/patterns.md
- 要查看 Thor 语法参考? 请参阅 references/patterns.md
- 要使用 Gum 构建丰富的终端 UI? 请参阅 references/gum.md
核心原则
- 使用紧凑的类声明:
class GemName::Cli::Main < GemName::Cli::Base - 实用工具模块使用
extend self,而不是module_function - 保持 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 中有意向标准输出写入内容) - gum gem 为常见平台捆绑了 gum 二进制文件;
GUM_INSTALL_DIR可指定其他位置的系统安装路径
评论
支持 Markdown