红宝石-命名一个以上单词的宝石时,应该使用破折号或下划线吗?

当宝石名称包含多个单词时,我对宝石命名约定感到困惑。

  • think-sphinx是gem的名称,但是此gem的基本* .rb文件是lib / thinking_sphinx.rb(下划线)

  • acts-as-taggable-on是gem的名称,基本* .rb文件称为lib / acts-as-taggable-on.rb(连字符)

  • factory_girl在gem名称和基本* .rb文件的名称中均使用下划线

是否使用下划线或连字符有关系吗? 这里有什么新兴共识吗?

dan asked 2019-11-17T00:50:00Z
2个解决方案
51 votes

埃里克·霍德尔(Eric Hodel)的博客文章:项目命名建议

Rails巩固了惯例   将CamelCase类名称映射到   带下划线的文件名(类   IMAPProcesor在   imap_processor.rb)。 使用下划线   宝石名称使人们容易   找出需要什么文件(相同   作为项目名称)或什么类   在ri中寻找的名称。

如果我有插件gem或扩展名   我将添加子项目的名称   破折号。 如果我想添加一个新的   大通银行imap_to_rss的处理程序   电子邮件,宝石将被命名   imap_to_rss-追逐。

Andrew Grimm answered 2019-11-17T00:50:40Z
26 votes

遵循这里的建议,下面是一个表格,说明事情将如何分解。

|     Gem name        |   Require statement          | Main class or module  |
|:--------------------|:-----------------------------|:----------------------|
|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 |
Intentss answered 2019-11-17T00:51:04Z
translate from https://stackoverflow.com:/questions/4687659/should-one-use-dashes-or-underscores-when-naming-a-gem-with-more-than-one-word