2013-05-31 71 views
1

在普通Ruby Ruby gem上工作的最簡單方法是什麼,然後快速轉向並在Rails應用程序中運行它?在Rails應用程序中處理寶石

我喜歡將應用程序邏輯保留在Rails之外。鼓勵跨項目的代碼重用,並保持我的Rails應用程序清潔。然而,它產生了一個醜陋的工作流程:

  1. 測試我的寶石。 rake test
  2. 建立我的寶石。 gem build ...
  3. 將gem上傳到私有存儲庫(目前使用Gemfury)。 fury push ...
  4. 從Rails內更新我的寶石(包更新...)
  5. 運行我的Rails代碼。

Yuck。我想簡單地將我的文件保存在庫中,然後在Rails項目中觀看它的工作。

Clojure的Leiningen有一個概念叫做"checkouts",允許你在一個庫中工作幾個庫。

技術,任何人?

回答

3

使用Bundler的path指令。

gem 'my_gem', :path => "~/my_gem" 

你仍然必須每次重新啓動Rails服務器代碼更改爲重新加載它,但你不會要經過的每個版本整個構建 - 發佈一步。確保在推送您的代碼之前將您的寶石參考更新爲值得生產的產品。

+0

當gem改變時,可以使用'guard'和'guard-shell'來動態'touch tmp/restart.txt'。 –

+0

如何避免在每次部署推送之前打開Gemfile並更改gem的引用? – KendallB

+0

據我所知並不如我所知。 –