代码之家  ›  专栏  ›  技术社区  ›  brad

Ruby Gem创作建议(如设置、环境等)

  •  1
  • brad  · 技术社区  · 14 年前

    我已经开发了一年的Rails应用程序,并且开始了一个新的项目(实际上是3个项目)。我想写一些可以在这些项目中共享的gem来维护一个公共代码库。它们可能最终会在某个时刻演变成Rails引擎,但首先,只是可以包含在每个应用程序中的公共库。

    我以前从来没有写过Rubygem,所以我在寻找关于在哪里/如何开始构建这个gem的提示和技巧:

    • 是不是最简单的开始编程它嵌套在一个Rails应用程序中,比如说,作为一个Git子模块来利用现有的Rails环境等?
    • 我应该开始将它作为一个独立的库进行编程吗?(我的非Rails经验相当基础,因此我不确定结构/设置/测试)

    我希望在适当的测试环境等条件下尽可能遵守简单的Rails约定。可能还不会成为Rails3的采纳者,但显然会朝着这个方向前进。

    任何提示、技巧、建议或推荐的资源都非常感谢!!

    3 回复  |  直到 7 年前
        1
  •  0
  •   Paul Rubel    14 年前

    不管是让它独立运行还是在事实发生后将其分离,这可能取决于您对gem和其余代码之间边界的了解程度。如果责任很明确,我会分道扬镳。如果还不清楚事情的开始和结束,你可能会想让它在你做正确的事情之前工作,阻止你自己做多次繁忙的工作。

    然而,一旦你准备好了代码,你就可以将代码的可重用部分提取出来(如果这是你的工作方式,那么在这之前),你可能想看看Jeweller, http://github.com/technicalpickles/jeweler 特别是如果你想和社区分享宝石。

    还有一本书: 实用的红宝石 ,有点过时了,但你可以找到一份用过的副本,价格不到1美元。

        2
  •  0
  •   Tanel Suurhans    14 年前

    我通常首先在需要的地方内联编写功能,比如模型级别等。当我注意到它可以重用时,它将它提取到lib/ext/modulename下的单独模块中。And when its clear that this piece of functionality could be used as a separate gem, i just make a new project, port the code into proper structure, handle any possible initialization, add documentation and commit to github.

    稍后,当您需要修改gem时,我只需在单独的项目中完成我的工作,构建gem,用gem install安装它——local project.gem。您也可以从Git安装它作为插件,直接在vendor目录中编辑它,然后将更改返回到gem项目。

        3
  •  0
  •   Zubin    14 年前

    珠宝商很棒,但有几个选择值得注意:

    • bundle gem yourgemname 创建一个简单的结构,您可以在其中自我管理gemspec文件(请参见 Railscasts episode 245 )
    • enginex yourgemname creates a barebones dummy rails3 app inside test/spec (pass -t rspec 如果这是您首选的测试框架)。找到它 github .