Bundler 1.2.0 ruby​​版本检查是否不需要基本的.rvmrc文件?

问题描述:

Bundler 1.2.0.pre包含一个新的“ruby”DSL选项。根据Heroku's documentation,他们使用这种新的Gemfile语法来控制在推送应用程序时使用哪个ruby版本。Bundler 1.2.0 ruby​​版本检查是否不需要基本的.rvmrc文件?

作为预发布版本,新版Bundler选项的文档目前非常薄弱,而Bundler 1.2 roadmap只是简单地将其列为“ruby版本检查”。

我的问题是:目前我在大多数项目中使用单行.rvmrc文件,其中我只指定该项目的红宝石版本(例如,rvm ruby-1.9.3)。我不使用RVM gemset或其他任何东西(我倾向于在项目*应所有必需的gem,并让Bundler管理依赖关系)。

鉴于我的微不足道的RVM配置,Bundler的DSL中新的“ruby”选项意味着我不再需要指定一个.rvmrc文件了吗?或者他们是两回事?

(我确实喜欢RVM在我进入我的项目时自动切换红宝石版本......不确定Bundler是否会这样做,或者它只是在当前版本不匹配时才会发出警告)

新的ruby是一个函数,它将允许任何最终评估为字符串的任何东西。

不幸的是,你需要使用bundler命令,假设你已经有了一个红宝石。

相反RVM为您提供了两种方法在Gemfile定义红宝石:

1)ruby "1.9.3" - 简单的字符串

2)#ruby=1.9.3-p125 - 当你想使用Ruby代码为ruby或当你想评论指定PATCHLEVEL或宝石!:

#ruby=1.9.3 
ruby ENV['RUBY_VERSION'] || '1.9.3' 

将允许捆绑与由RVM但默认情况下加载的任何红宝石工作将使用1.9.3 from #ruby=

+0

使用'ENV ['RUBY_VERSION']'可能会破坏其基本目的,特别是考虑到'ruby'指令告诉像Heroku这样的服务需要使用哪个版本的Ruby进行部署。 –

+0

Ryan这不是我的电话,我必须在RVM中处理它,这真的很难,因为它都是ruby代码,现在没有基于ruby的红宝石切换工具 - 所以当然不可能读取版本 - 但即使我们会有一个ruby过程,结果可能会被扭曲 - 并且正如您注意到的,我以不良代码为例说明为什么要使用该评论,您是否觉得有必要提醒用户不要使用它? – mpapis