将Ruby Gems嵌套在Rails项目中

时间:2014-04-23 04:52:59

标签: ruby-on-rails ruby bundler

如何创建嵌套在当前Rails项目中的gem项目?

我有一个Rails项目,其中包含几个很容易成为宝石的部分。我想将这些部分提取到宝石中,但不要离开当前的Rails项目。为gem创建新的源代码控制存储库会增加项目或组织尚未准备好或无法处理的额外复杂性。这些复杂性将在某些时候克服,我想做好准备。

到目前为止,我只能想到这些项目。

  1. 将代码重定位到单个目录根目录。我猜这将在vendor路径
  2. 创建<something>.gemspec
  3. 链接到Rails应用程序的Gemfile中的gem

    gem 'my_lib_code', path: 'vendor/my_lib_code'
    
  4. 我还需要做什么?我确定我错过了一些重要的东西。


    如果这是一个c项目,我会创建另一个make进程吐出的共享库。或者,如果这是一个c#项目,我会做一个.dll。对于Java,我会...

    我确信Ruby可以和所有其他语言一样。在通常完全提取的宝石和我的lib路径中的一些代码选址之间的一半距离。

1 个答案:

答案 0 :(得分:0)

对于基于组件的体系结构,这是一种非常好的方法。

您拥有一个存储库,一个测试套件和一个部署过程,同时您“被迫”想到干净的界面和关注点分离。

当然,如果您计划与其他项目共享此功能,那么外部托管(但不一定是公开的)Gem可以提供更好的服务。

明智的实施,你可以从今年的RailsConf中的Stephan Hagemann的演讲中得到一些漂亮的想法:“Get started with Component-based Rails applications!