指南
我们对在 gem 名称中使用“_”和“ - ”的建议。
以下是一些我们对 gem 命名建议的示例
Gem 名称 | Require 语句 | 主类或模块 |
---|---|---|
ruby_parser |
require 'ruby_parser' |
RubyParser |
rdoc-data |
require 'rdoc/data' |
RDoc::Data |
net-http-persistent |
require 'net/http/persistent' |
Net::HTTP::Persistent |
net-http-digest_auth |
require 'net/http/digest_auth' |
Net::HTTP::DigestAuth |
这些建议的主要目标是为用户提供一些关于如何在你的 gem 中 require 文件的线索。遵循这些约定还可以让 Bundler 在没有额外配置的情况下 require 你的 gem。
如果你在 rubygems.org 上发布了一个 gem,如果名称令人反感、侵犯知识产权或 gem 的内容符合这些标准,它可能会被删除。你可以通过电子邮件向 [email protected] 报告此类 gem。
对多个单词使用下划线
如果一个类或模块包含多个单词,请使用下划线分隔它们。这与用户将要需要的文件相匹配,使用户更容易开始使用您的 gem。
对于扩展使用连字符。
如果您要向另一个 gem 添加功能,请使用连字符。这通常对应于 require 语句中的 /
(以及您 gem 的目录结构)和主类或模块名称中的 ::
。
适当地混合使用下划线和连字符。
如果您的类或模块包含多个单词,并且您还向另一个 gem 添加功能,请遵循以上两个规则。例如,net-http-digest_auth
向 net/http
添加了 HTTP 摘要身份验证。用户将 require 'net/http/digest_auth'
来使用扩展(在类 Net::HTTP::DigestAuth
中)。
不要使用大写字母。
OS X 和 Windows 默认情况下具有不区分大小写的文件系统。用户可能会错误地使用大写字母从 gem 中需要文件,如果将 gem 移动到非 Windows 或 OS X 系统,则这些文件将不可移植。虽然这主要是一个新手错误,但我们不需要比必要时更令人困惑。
致谢
本指南扩展自 Eric Hodel 的 如何命名 gem。