2013-10-27 55 views
0

請注意:應用程序A,應用程序B和GemX僅用於說明示例,它們不是真正的應用程序或Ruby Gems。Ruby:我如何驗證我的gemfile是否正確?

我正在開發「應用程序A」。在我的本地開發環境中,我安裝了所有需要的寶石。

然後,我開始開發「應用程序B」。應用程序B需要應用程序A用於添加「Gem X」的所有寶石。

我在我的本地開發環境中做了一個紅寶石安裝gemx,但在我心不在焉時,我忘記將gemx條目添加到我的gemfile中。

我把我的紅寶石源發送到其他地方(例如,想要使用應用程序B或生產環境的朋友)。但是應用程序失敗,因爲它依賴於gemx,但gemx並未作爲綁定的一部分進行安裝。

如何測試我的gemfile在本地開發環境中是否正確?我假設有一個更簡單的辦法,而不是做到以下幾點在我的本地開發環境

  1. 卸載我的依賴
  2. 使用捆綁重新安裝所有的依賴
  3. 運行的應用程序,以確保所有的依賴性已安裝

回答

3

如果您正確使用Bundler,它應該不會成爲問題,因爲它修改了$LOAD_PATH,因此只能找到Gemfile中列出的寶石。確保您撥打:

require 'bundler' 
Bundler.setup 

代碼中的某處。在某些情況下(特別是寶石),這可能只會在測試中出現。在應用程序中它通常在你的「啓動」文件中。

+0

我不確定我是否理解「正確使用捆綁器」的含義。這是否意味着我應該說「require bundler; Bundler.setup」而不是「require gem1_x,gem_y,gem_z)? – JoeyC

+1

Both。Bundler.setup只是正確設置加載路徑(並且必須先完成)。請參閱http: //bundler.io/v1.3/bundler_setup.html。 –