2

Bundler 1.2.0.preには、新しい「ruby」DSLオプションが含まれています。Herokuのドキュメントによると、この新しいGemfile構文を使用して、アプリをプッシュするときに使用されるrubyのバージョンを制御します。

プレリリースであるため、新しいBundlerオプションのドキュメントは現時点ではかなり薄く、Bundler1.2ロードマップには単に「rubyバージョンチェック」と記載されています。

私の質問は次のとおりです。現在、ほとんどのプロジェクトで1行の.rvmrcファイルを使用しています。このファイルでは、そのプロジェクトのルビーバージョンのみを指定しています(例rvm ruby-1.9.3)。私はRVMgemsetsなどを使用していません(プロジェクト内で必要なすべてのgemをベンダー化し、Bundlerに依存関係を管理させることを好みます)。

私の些細なRVM構成を考えると、BundlerのDSLの新しい「ruby」オプションは、.rvmrcファイルを指定する必要がなくなったことを意味しますか?それとも2つの異なるものですか?

(プロジェクトにCDを挿入すると、RVMがルビーのバージョンを自動的に切り替えるという事実が好きです... Bundlerがそれを行うかどうか、または現在のバージョンが一致しない場合に警告するだけかどうかはわかりませんか?)

4

1 に答える 1

0

newrubyは関数であり、最終的に文字列に評価されるものはすべて許可されます。

残念ながら、それを読むと、bundlerすでにルビーを持っていることを前提としたコマンドを使用する必要があります。

代わりに、RVMは次のようにrubyを定義する2つの方法を提供しますGemfile

1)ruby "1.9.3"-単純な文字列

2) -ruby#ruby=1.9.3-p125コードを使用する場合、rubyまたはパッチレベルまたはgemsetを指定する場合のコメント!:

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

バンドラーがRVMによってロードされたすべてのルビーで動作できるようにしますが、デフォルトでは1.9.3を使用します。#ruby=

于 2012-05-28T21:00:54.487 に答える