2014-01-19 65 views
1

我要尋找的建議/資源/途徑除了紅寶石遊戲管理軌道項目的外部依賴關係(捆綁不只是完美的)除了依賴。例如,我想補充檢查,看是否喜歡的東西管理的Rails從寶石

  1. 一些外部的二進制文件(如@中,蟒蛇等等等等。)
  2. 一些環境變量設置或沒有(像AWS訪問密鑰等.. ..)
  3. 今天是聖誕節!?

而且更多一些。

想到的一點是,如果可以將這些檢查添加到捆綁器並顯示錯誤消息(如果某些其他用戶定義的項目依賴項丟失或不存在),那將會很好。我沒有尋找版本管理或任何幻想。只需添加一些自定義代碼檢查來查看所有依賴關係(當然除了寶石)。

還是有更好的辦法的人做什麼呢?使用單元測試可能是?如果初學者不知道如何運行單元測試呢?

我之所以問這個問題,比如我作爲一個經驗豐富的有點Rails開發要與別人合作剛剛起步。我想使項目安裝和設置變得簡單,並且使錯誤變得冗長(如果有的話)。

建議和鏈接,以良好的資源歡迎。

UPDATE

是否有一個 「優雅」 的方式來添加一些掛鉤捆綁?說讓它運行一些單元測試或測試什麼的?

而且我不一定要找這種檢查也安裝這些外部依賴。只需檢查它們,如果檢查失敗,則顯示用戶友好的信息並提示如何安裝它們。

簡單的例子代碼將是真棒..用耙子任務的

+0

不能支持一個完整的答案,但我肯定會添加一個檢查環境的覆蓋測試。如果你和一個經驗不足的人一起工作,他們不知道如何運行測試,那麼第1課是「如何運行測試」。 –

+0

你爲什麼要避免* bundler *? –

+0

@NeilSlater我已經有了覆蓋環境的測試用例。但我的想法是「捆綁安裝」確實是你做的第一件事。如果我們可以運行更多的依賴檢查,那將是非常棒的。 – Shaunak

回答

1

majioa的建議是有道理的。您需要以某種方式運行shell命令,並且rake允許您更自然地將它們集成到Rails應用程序中。

我不確定你是如何掛入bundle的,但可以掛鉤Rails的rake任務(請參閱this answer)。 db:createdb:migrate是您可以接入的常見初始任務。請參閱this post作爲學習耙子的起點。

儘管如此,設置機器似乎應該與應用程序本身分開考慮。你以前看過Chef嗎?

+0

感謝您的回答Jim,是的,我已經看過廚師,只有我覺得用它來檢查這些操作系統依賴關係中的幾個會是一種矯枉過正。現在創建耙子任務使您的答案中的鏈接更有意義。只需要弄清楚如何在捆綁器後執行它們。因爲如果沒有滿足依賴關係,我仍然認爲這是捕獲這些錯誤的最簡單方法。 – Shaunak