当宝石名称有多个单词时,我对宝石命名约定是什么感到困惑。
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文件的名称中使用下划线
如果使用下划线或连字符,这有关系吗?这里是否有任何新的共识?
答案 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 |