用一个以上的单词来命名一个gem是否应该使用破折号或下划线?

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

  • 思维 – 狮身人面像是gem的名称,但该gem的基础* .rb文件是lib / thinking_sphinx.rb(下划线)

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

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

如果使用下划线或连字符,这是否重要? 这里有什么新的共识吗?

Eric Hodel有一个博客文章: 项目命名推荐

Rails巩固了将CamelCase类名称映射为下划线文件名的惯例(类IMAPProcesor在imap_processor.rb中定义)。 使用加下划线的gem名称可以使人们很容易地找出需要的文件(与项目名称相同)或在ri中查找什么类别名称。

如果我有一个插件gem或一个扩展名,我会用短划线来指定子项目的名字。 如果我想为Chase银行电子邮件添加imap_to_rss的新处理程序,那么gem将被命名为imap_to_rss-chase。

按照这里的build议,这里是一个如何破坏事情的表格。

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