在添加gem / 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从来不是真正的规范宝石名称的好地方,因此当decided to drop their automatic gem hosting启动时,它们Gemcutter *。从那时起,甚至最初的经典宝石RubyForge都不再支持Gemcutter来托管宝石。现在,Gemcutter是所有宝石的规范来源。

为了使所有人都容易使用,现在http://gems.rubyforge.org指向http://gemcutter.org

* GitHub宣布他们将继续托管所有旧的用户名命名空间的gem至少一年。



关于factory_girl,现在也托管在Gemcutter上。您的配置现在只需要看起来像这样:

config.gem "factory_girl"


...但是我建议您也为项目添加一个版本号(稍后再返回一个过时的项目,您将感谢我):

config.gem "factory_girl", :version => "1.2.3"

08-27 05:09