Ruby gem命名约定

Kyl*_*cot 40 ruby rubygems ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

我正在创建一个红宝石宝石,我注意到(据我所知)似乎没有宝石的命名约定.例如,我见过两个:

gem 'foo-bar'
gem 'foo_bar'
Run Code Online (Sandbox Code Playgroud)

红宝石的命名是否有某种明确的指导/惯例?

iai*_*ain 66

虚线版本用于其他框架的扩展,例如rspec-rails,下划线是普通宝石名称的一部分,应该在您的类中加入.

因此,如果您有一个名为gem foo_bar的类,则应该命名类/模块FooBar.如果那个gem应该有一个rails扩展,它作为一个不同的gem运行,它应该被调用,并且应该调用foo_bar-rails该模块FooBar::Rails,并且应该要求它require "foo_bar/rails"

这个约定也是Bundler试图要求的.

诚然,并不总是遵循这一惯例.jquery_rails实际上应该jquery-rails而且factory_girl_rails应该被称为factory_girl-rails.但是,嘿,并非一切都是完美的.

RubyGems惯例文档:

  • 这是由rubygems模式docs [here](http://guides.rubygems.org/patterns/)支持的. (5认同)

tjs*_*kus 5

事实证明,这在rubygems文档中非常清楚和简洁地得到了解答:http://guides.rubygems.org/name-your-gem/

(这可能是最近添加的文档,因为我记得在过去搜索此信息而未找到它.)