Ruby on rails 如何命名依赖于其他宝石的宝石';什么是宝石?
我想创建一个包含自定义rspec匹配器的gem。它们用于测试web服务,所以两个单词部分是RSpec和Webservice。现在,宝石的名称应该是Ruby on rails 如何命名依赖于其他宝石的宝石';什么是宝石?,ruby-on-rails,ruby,web-services,rspec,Ruby On Rails,Ruby,Web Services,Rspec,我想创建一个包含自定义rspec匹配器的gem。它们用于测试web服务,所以两个单词部分是RSpec和Webservice。现在,宝石的名称应该是 rspecwebservice rspec matchers网站服务 rspec\u网络服务 。。。还是别的什么 似乎没有解决这个问题: rspecwebservice似乎是正确的,因为我正在“向另一个gem添加功能”。但这将对应于驻留在RSpec::Webservice中的gem,而我不是RSpec的维护者,因此可能会出现命名冲突 rspec
rspecwebservice
rspec matchers网站服务
rspec\u网络服务
rspecwebservice
似乎是正确的,因为我正在“向另一个gem添加功能”。但这将对应于驻留在RSpec::Webservice中的gem,而我不是RSpec的维护者,因此可能会出现命名冲突
rspec matchers-webservice
是一种可能性,因为rspec库本身似乎就是这样
rspec_webservice
是一个安全的选项,因为它将位于自己的根命名空间(RSpecWebservice)中,冲突将被排除,因为rubygems系统将确保此名称不能用于其他gem
所有这些问题都与这样一个RSpec扩展是否会在各种名称空间中运行的问题完全不同
编辑:我得到的一条建议是不要使用这些名称,而是使用非描述性名称。与web服务器类似。例如,在这种情况下,没有标准指南。以下是一些方法: 如果您的gem为现有库提供了额外的特性,那么使用模式
原始特性
是很常见的。值得注意的例子:
- rspec钢轨
- net-ssh
- 防护罩
- rspec匹配器
- rspec核心
rspec-matchers-webservice
这是一个选择,但我没有看到rspec-matchers
“组件”。这并不会阻止你使用这样的选择。我见过其他库使用不同的顺序,例如,但我认为rspecmatchersfoo
更好
rspec\uwebservice
更安全,但并不常见
另一种可能是一个全新的名字,但这可能不是一个明智的选择,尤其是如果你的图书馆有一个非常小的nike,而且很可能会从搜索引擎或RubyGems网站上搜索到它。在您的情况下,我会坚持使用与您扩展的产品相近的名称
总之,我的建议是看看现有的模式,对可能的通用模式有一个想法,然后做出决定rspec matchers Web服务在我看来是最好的选择
你也可以考虑给RSPEC维护人员写一封信,并征求他们的意见。
< P>参见RuuGeMeSub。
基本上:
对多个单词使用下划线
使用破折号作为扩展名
您可以根据需要混合下划线和破折号。没有特别的约定。如果您要创建用于分发的gem,只需确保名称不被采用。我要说的是,肯定有一个惯例:我从Myron Marston那里得到了这样的答复:如果您的库只提供匹配器(而不是其他功能),我建议rspec-webservice\u匹配器
(使用RSpec::WebserviceMatchers
名称空间)。这与最近扩展的gem类似。