在使用多个单词命名宝石时,是否应该使用破折号或下划线?

时间:2011-01-14 03:18:13

标签: ruby naming-conventions

当宝石名称有多个单词时,我对宝石命名约定是什么感到困惑。

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

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

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

如果使用下划线或连字符,这有关系吗?这里是否有任何新的共识?

2 个答案:

答案 0 :(得分:51)

Eric Hodel有一篇博文:A Project Naming Recommendation

  

Rails巩固了这一惯例   将CamelCase类名映射到   强调文件名(类   IMAPProcesor的定义是   imap_processor.rb)。使用强调   宝石名称让人们很容易   找出要求的文件(同样的   作为项目名称)或什么类   要在ri中寻找的名字。

     

如果我有插件宝石或扩展名   我将介绍子项目的名称   用短划线。如果我想添加一个新的   大通银行imap_to_rss的处理程序   电子邮件,宝石将被命名   imap_to_rss追

答案 1 :(得分:26)

根据建议here,这里有一个表格,说明事情会如何分解。

|     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 |