2

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 是否会这样做,或者它是否只是在当前版本不匹配时发出警告?)

4

1 回答 1

0

the new ruby is a function and it will allow anything that finally evaluates to a string.

Unfortunately o read it you would need to use a bundler command which assumes you already have a ruby.

Instead RVM gives you two ways to defining ruby in Gemfile:

1) ruby "1.9.3" - simple strings

2) #ruby=1.9.3-p125 - a comment when you want to use ruby code for ruby or when you want to specify patchlevel or gemset!:

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

Will allow bundler to work with any ruby loaded by RVM but by default will use 1.9.3 from #ruby=

于 2012-05-28T21:00:54.487 回答