2012-05-28 25 views
2

Bundler 1.2.0.pre包含一個新的「ruby」DSL選項。根據Heroku's documentation,他們使用這種新的Gemfile語法來控制在推送應用程序時使用哪個ruby版本。Bundler 1.2.0 ruby​​版本檢查是否不需要基本的.rvmrc文件?

作爲預發佈版本,新版Bundler選項的文檔目前非常薄弱,而Bundler 1.2 roadmap只是簡單地將其列爲「ruby版本檢查」。

我的問題是:目前我在大多數項目中使用單行.rvmrc文件,其中我只指定該項目的紅寶石版本(例如,rvm ruby-1.9.3)。我不使用RVM gemset或其他任何東西(我傾向於在項目中供應所有必需的gem,並讓Bundler管理依賴關係)。

鑑於我的微不足道的RVM配置,Bundler的DSL中新的「ruby」選項意味着我不再需要指定一個.rvmrc文件了嗎?或者他們是兩回事?

(我確實喜歡RVM在我進入我的項目時自動切換紅寶石版本......不確定Bundler是否會這樣做,或者它只是在當前版本不匹配時纔會發出警告)

回答

0

新的ruby是一個函數,它將允許任何最終評估爲字符串的任何東西。

不幸的是,你需要使用bundler命令,假設你已經有了一個紅寶石。

相反RVM爲您提供了兩種方法在Gemfile定義紅寶石:

1)ruby "1.9.3" - 簡單的字符串

2)#ruby=1.9.3-p125 - 當你想使用Ruby代碼爲ruby或當你想評論指定PATCHLEVEL或寶石!:

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

將允許捆綁與由RVM但默認情況下加載的任何紅寶石工作將使用1.9.3 from #ruby=

+0

使用'ENV ['RUBY_VERSION']'可能會破壞其基本目的,特別是考慮到'ruby'指令告訴像Heroku這樣的服務需要使用哪個版本的Ruby進行部署。 –

+0

Ryan這不是我的電話,我必須在RVM中處理它,這真的很難,因爲它都是ruby代碼,現在沒有基於ruby的紅寶石切換工具 - 所以當然不可能讀取版本 - 但即使我們會有一個ruby過程,結果可能會被扭曲 - 並且正如您注意到的,我以不良代碼爲例說明爲什麼要使用該評論,您是否覺得有必要提醒用戶不要使用它? – mpapis

相關問題