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

dan*_*dan 56 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名称和base*.rb文件的名称中使用下划线

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

And*_*imm 51

Eric Hodel有一篇关于此的博客文章:项目命名建议书

Rails巩固了将CamelCase类名映射到下划线文件名的约定(类IMAPProcesor在imap_processor.rb中定义).使用下划线的gem名称可以让人们轻松找出需要的文件(与项目名称相同)或在ri中查找的类名.

如果我有一个插件宝石或扩展名,我会用破折号在子项目的名称上添加.如果我想为Chase银行电子邮件添加imap_to_rss的新处理程序,则gem将命名为imap_to_rss-chase.

  • 这与官方Ruby Gems指南中给出的建议 - [Consistent Naming](http://guides.rubygems.org/patterns/#consistent-naming)一致. (4认同)

Int*_*tss 26

按照这里的建议,这里有一个表格,说明事情会如何分解.

|     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 |
Run Code Online (Sandbox Code Playgroud)