建立一个插件或宝石?

时间:2009-01-13 20:37:45

标签: ruby-on-rails plugins gem

通常我创建一个插件,当我有一个模块,我知道我将需要在我的其他项目中重复,但是,它们也可以打包为宝石。

我应该何时构建一个创建插件的宝石?是否有拨打电话的标准?

3 个答案:

答案 0 :(得分:9)

由于您可以通过environment.rb中的“config.gem”语句管理gem,因此插件已经过时了。宝石在系统范围内可用(不只是在一个应用程序中),并且与插件不同版本。

我最近将所有plugins转换为宝石。 Easy to do非常值得。

答案 1 :(得分:1)

Rails似乎正朝着宝石方向发展。我现在将大部分插件转换为宝石。宝石更易于管理,更适合Ruby生态系统。为什么我们还需要两个独立的系统?

但是宝石仍然存在问题:无法从gem向Rails应用程序添加rake任务。虽然我不确定,发电机可能也是如此。如果您在插件中使用这些,则无法迁移到gem。希望这很快得到解决。

答案 2 :(得分:1)

您可以通过宝石将生成器添加到rails。它实际上很简单,你只需要在你的gem中添加一个rails_generators目录。 (我认为其他目录名称将起作用 - 我不确定rails搜索的是什么)。例如:http://github.com/remi/rackbox/tree/a21c21667c68d5fd51357e28f0742171e9161e9b/rails_generators

至于添加rake任务......我还没弄明白如何做到这一点:/

现在,我让我的生成器将require 'myproject/rails/tasks'(或其他东西)添加到项目的Rakefile中,作为从gem中将rake任务添加到rails的方法。

许多宝石要求你“引导”它们进入你的rails项目,例如。   sudo gem安装黄瓜   cd rails_app   ./script/generate cucumber#bootstrap黄瓜到你的应用程序