ruby-cli
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseRuby CLI Development
Ruby CLI 开发
Build Ruby CLI tools using Thor for commands and Zeitwerk for autoloading.
使用Thor实现命令,Zeitwerk实现自动加载,构建Ruby CLI工具。
Quick Navigation
快速导航
- Starting a new CLI gem from scratch? See references/bootstrap.md
- Adding commands or subcommands? See references/patterns.md
- Thor syntax reference? See references/patterns.md
- Rich terminal UI with Gum? See references/gum.md
- 从零开始创建新的CLI gem? 查看references/bootstrap.md
- 添加命令或子命令? 查看references/patterns.md
- Thor语法参考? 查看references/patterns.md
- 使用Gum打造丰富的终端UI? 查看references/gum.md
Core Principles
核心原则
- Use compact class declarations:
class GemName::Cli::Main < GemName::Cli::Base - Use instead of
extend selffor utility modulesmodule_function - Keep the Base class lean - add helpers as patterns emerge
- 使用简洁的类声明:
class GemName::Cli::Main < GemName::Cli::Base - 对于工具模块,使用而非
extend selfmodule_function - 保持Base类精简 - 随着模式出现再添加辅助方法
Output Styling
输出样式
For basic output, use Thor's built-in .
say "message", :colorFor rich terminal UI (headers, tables, spinners, confirmations), use the Gum gem:
ruby
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 workSee references/gum.md for setup and full API.
对于基础输出,使用Thor内置的方法。
say "message", :color对于丰富的终端UI(标题、表格、加载动画、确认框),使用Gum gem:
ruby
ui.header("Section Title") # 带边框的品牌化标题
ui.success("Done!") # 绿色对勾
ui.error("Failed") # 红色叉号
ui.table(rows, columns: [...]) # 格式化表格
ui.spin("Working...") { ... } # 执行任务时显示加载动画查看references/gum.md了解安装和完整API。
Tips & Gotchas
提示与注意事项
- Add to UI modules (stdout is intentional in CLIs)
# rubocop:disable Rails/Output - Gum requires on the host machine
brew install gum
- 在UI模块中添加注释(CLI中输出到标准输出是有意为之)
# rubocop:disable Rails/Output - Gum需要在主机上执行进行安装
brew install gum