2015-12-16 10 views
3

我的铁轨4项目取决于舒适的墨西哥沙发(CRM),它是作为宝石加载的。 我检出了这个gem作为我的git仓库的子模块。向前迈进,这颗宝石正在成为我的项目的一部分:我正在添加功能 ,这取决于我的项目类。包含一个创业板的代码作为铁路项目的一部分

我想保留这个宝石作为子模块(能够从 拉主变更),但仍然能够添加依赖于我的项目的代码。

什么是最简单的方法来实现呢? (我应该把整个宝石子模块到我的lib文件夹,例如? 我应该把它作为宝石引用?等等)

+1

您应该可以将其保留为宝石,并根据需要在应用程序中重写。 –

+0

现在这个工作正常,但在我的代码和这个gem代码之间有双向依赖关系似乎不是一个好主意。 –

回答

2

对于我来说,在发展中,分离始终是更好然后结合。我建议将它作为宝石,并在单独的存储库中进行开发。

+0

这就是我现在这样做的方式,但我并不十分满意。我对此问题添加了一条评论。 –

2

我应该把它作为宝石

是的,你需要保持它作为一个宝石引用引用。

使用外部库的好处之一是它们由一群非常聪明的人维护(大部分时间)。这将是极不可能的,你将能够保持你所包含的子模块与宝石所有者一样多。

你最好做的是重写宝石的特定部分(EG比如有多少人用自己的控制器覆盖Devise功能),或者查看有关创建用于gem的API,您可以从您的应用程序填充该API。

+0

我想他可以将宝石分叉并将他的特征添加到他的叉子上,然后他可以在宝石发生变化时合并宝石。 –

+0

可能但这意味着你必须始终保持最佳状态。最好的方法是让宝石代码更新,并通过自己的应用程序添加到代码中。 –

相关问题