当谈到添加gems/plugins时,我注意到有时候作者名称会被添加到gem/plugin名称中,而有时则不会.这背后有什么理由吗?
例:
config.gem "thoughtbot-factory_girl", :source => "http://gems.github.com"
为什么不这样做:
config.gem "factory_girl", :source => "http://gems.github.com"
你什么时候区分这两者?
当GitHub用于自动构建和托管gem时,它们通过用户名强制执行命名空间方案.这就是github gems以用户名为前缀的原因.GitHub拥抱分叉项目; 因此需要带前缀的用户名.GitHub从来都不是规范宝石名称的好地方,所以当Gemcutter推出时,他们决定放弃他们的自动宝石托管*.从那时起,即使是最初的规范宝石主机RubyForge也停止托管宝石,转而使用Gemcutter.Gemcutter现在是所有宝石的规范来源.
为了方便每个人,http://gems.rubyforge.org现在指向http://gemcutter.org.
*GitHub宣布他们将继续托管所有旧的用户名命名宝石至少一年.
关于factory_girl,现在也在Gemcutter上托管.您的配置现在只需要看起来像这样:
config.gem "factory_girl"
...但我建议你也为你的项目添加一个版本号(当你稍后回到一个陈旧的项目时,你会感谢我):
config.gem "factory_girl", :version => "1.2.3"