Bundler 1.2.0.pre 包含一个新的"ruby"DSL 选项。 根据 Heroku 的文档,他们使用这种新的 Gemfile 语法来控制在推送应用程序时使用哪个 ruby 版本。
作为预发布版本,新 Bundler 选项的文档目前相当薄弱,Bundler 1.2 路线图只是将其列为"Ruby 版本检查"。
我的问题是:目前我在大多数项目中都使用单行 .rvmrc 文件,其中我只指定该项目的 ruby 版本(例如。 rvm ruby-1.9.3
)。 我不使用 RVM gemset 或其他任何东西(我更喜欢在项目中出售所有必需的 gem,并让 Bundler 管理依赖项)。
鉴于我微不足道的 RVM 配置,Bundler DSL 中的新"ruby"选项是否意味着我不再需要指定 .rvmrc 文件? 还是它们是两回事?
(我确实喜欢这样一个事实,即当我 cd 进入我的项目时,RVM 会自动切换 ruby 版本......不确定 Bundler 是否会这样做,或者它是否只是在当前版本不匹配时发出警告?
新的ruby
是一个函数,它将允许最终计算为字符串的任何内容。
不幸的是,阅读它,您需要使用一个bundler
命令,该命令假设您已经拥有红宝石。
相反,RVM为您提供了两种在Gemfile
中定义Ruby的方法:
1) ruby "1.9.3"
- 简单字符串
2) #ruby=1.9.3-p125
- 当您想使用 Ruby 代码进行ruby
或想要指定补丁级别或 Gemset 时的评论!
#ruby=1.9.3
ruby ENV['RUBY_VERSION'] || '1.9.3'
将允许捆绑器使用 RVM 加载的任何 ruby,但默认情况下将使用 #ruby=
中的 1.9.3