当gem名称有多个单词时,我对gem命名约定感到困惑。
thinking-sphinx是该gem的名称,但此gem的基本*.rb文件为lib/thinking_sphinx.rb(下划线)
acts-as-taggable-on是该gem的名称,基本的*.rb文件称为lib/acts-as-taggable-on.rb(连字符)
factory_girl在gem名称和基本*.rb文件的名称中都使用下划线
是否使用下划线或连字符有关系?这里是否有任何共识?
当gem名称有多个单词时,我对gem命名约定感到困惑。
thinking-sphinx是该gem的名称,但此gem的基本*.rb文件为lib/thinking_sphinx.rb(下划线)
acts-as-taggable-on是该gem的名称,基本的*.rb文件称为lib/acts-as-taggable-on.rb(连字符)
factory_girl在gem名称和基本*.rb文件的名称中都使用下划线
是否使用下划线或连字符有关系?这里是否有任何共识?
Eric Hodel在他的博客发布了一篇文章:一个项目命名建议
Rails巩固了将CamelCase类名映射为下划线文件名的约定(class IMAPProcesor被定义在imap_processor.rb中)。使用下划线命名的gem名称使人们很容易找到要require的文件(与项目名称相同),或者在ri中查找哪个类名。
如果我有一个插件gem或扩展,我会在子项目名称后面添加一个破折号。如果我想为Chase银行电子邮件添加一个新的imap_to_rss处理程序,那么gem将被命名为imap_to_rss-chase。
按照这里的建议,以下是一个表格,展示了如何分解:
宝石名称 | 要求语句 | 主类或模块 |
---|---|---|
fancy_require |
require 'fancy_require' |
FancyRequire |
ruby_parser |
require 'ruby_parser' |
RubyParser |
net-http-persistent |
require 'net/http/persistent' |
Net::HTTP::Persistent |
rdoc-data |
require 'rdoc/data' |
RDoc::Data |
autotest-growl |
require 'autotest/growl' |
Autotest::Growl |
net-http-digest_auth |
require 'net/http/digest_auth' |
Net::HTTP::DigestAuth |
require 'tout/suite'
来引用它。有任何想法吗?我正在使用ruby 2.0和rails 4.1.1。 - gardenofwine