Bundler 1.2.0.pre包含一个新的“ruby”DSL选项。根据{{3}},他们使用这种新的Gemfile语法来控制推送应用程序时使用的ruby版本。
预发布时,新Bundler选项的文档目前还很薄,而Heroku's documentation只是将其列为“ruby版本检查”。
我的问题是:目前我在大多数项目中使用单行.rvmrc文件,其中我只为该项目指定了ruby版本(例如。rvm ruby-1.9.3
)。我不使用RVM gemsets或其他任何东西(我更喜欢在项目中提供所有必需的gem,让Bundler管理依赖项)。
鉴于我的琐碎RVM配置,Bundler的DSL中的新“ruby”选项是否意味着我不再需要指定.rvmrc文件?或者他们是两个不同的东西?
(我确实喜欢RVM在我进入我的项目时自动切换ruby版本的事实......不确定Bundler是否会这样做,或者它是否仅在当前版本不匹配时发出警告?)
答案 0 :(得分:0)
新的ruby
是一个函数,它将允许最终计算为字符串的任何内容。
不幸的是,在阅读它之后,您需要使用bundler
命令,假设您已经拥有红宝石。
相反,RVM为您提供了两种在Gemfile
中定义ruby的方法:
1)ruby "1.9.3"
- 简单字符串
2)#ruby=1.9.3-p125
- 当您想要为ruby
使用ruby代码或者想要指定patchlevel或gemset时注释!:
#ruby=1.9.3
ruby ENV['RUBY_VERSION'] || '1.9.3'
允许bundler使用RVM加载的任何ruby,但默认情况下将使用#ruby=