2016-05-20 24 views
0

我工作在一個特定的項目,我必須寫上openid_connect寶石頂部的SDK(一種寶石)。目前,我的代碼由單個文件組成(但我也將爲它編寫一些測試)以及顯示SDK使用的示例應用程序。問題是我無法將SDK作爲rubygem發佈,因爲它必須作爲示例應用推送到相同的git存儲庫。客戶端將只使用SDK。 SDK是一個包含方法的類。結構不打算成爲珠寶

我目前的做法是寫在RubyOnRails SDK/lib文件夾(但SDK與其他Ruby框架的工作也一樣),讓客戶端下載位於內部的示例應用程序的lib文件夾的SDK。

1)我的代碼應該放在lib還是vendor目錄下?或者有更好的方法?

2)如何這段代碼可以包含在紅寶石的應用程序?安裝爲寶石或需要包括...

3)可測試在同一個文件夾中去,因爲SDK(而不是在鐵軌/ test文件夾)?

+0

我會寫一個gem(包括測試),並將示例應用程序放在它自己的git存儲庫中,以及一個包含gem的Gemfile。 – Stefan

+0

是的,但該項目的具體要求是推動示例應用程序和寶石同一個git回購。 – Marcis

+1

你的寶石可以有一個包含示例應用的'examples'目錄。 – Stefan

回答

0

1)聽起來好像這個代碼是不是在所有依賴於導軌。因此,不要爲它創建一個Rails項目。這將增加不必要的儀式和依賴。

2)有沒有錯,通過具有在寶石的混帳回購協議樣本文件。例如,您可以將它們放在名爲samplesexamples的目錄中。

3)要創建一個傳統的寶石目錄結構,使用bundle

bundle gem my_gem_name 

4)你的測試應該在一個名爲test目錄,如果他們是MINITEST,或spec如果他們是RSpec的。