Bundler 1.2.0.pre 包括一个新的“ruby”DSL 选项。根据Heroku's documentation ,他们使用这种新的 Gemfile 语法来控制在您推送应用程序时使用哪个 ruby 版本。
作为预发布版,新 Bundler 选项的文档目前还很少,而且 Bundler 1.2 roadmap简单地将其列为“ruby 版本检查”。
我的问题是:目前我在我的大部分项目中使用单行 .rvmrc 文件,其中我只指定该项目的 ruby 版本(例如 rvm ruby-1.9.3
).我不使用 RVM gemsets 或其他任何东西(我更喜欢在项目中供应所有必需的 gem,并让 Bundler 管理依赖项)。
考虑到我简单的 RVM 配置,Bundler 的 DSL 中新的“ruby”选项是否意味着我根本不再需要指定 .rvmrc 文件?或者它们是两个不同的东西?
(我很喜欢这样一个事实,当我 cd 进入我的项目时,RVM 会自动切换 ruby 版本……不确定 Bundler 是否会这样做,或者它是否只是在当前版本不匹配时发出警告?)
最佳答案
新的 ruby
是一个函数,它允许任何最终计算为字符串的东西。
不幸的是,阅读它你需要使用一个 bundler
命令,它假定你已经有一个 ruby。
相反,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=
关于ruby - Bundler 1.2.0 ruby 版本检查是否不需要基本的 .rvmrc 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10778304/