6

通常,当我知道我将在其他项目中再次需要一个模块时,我会创建一个插件,但是,它们也可以打包为 gem。

我应该什么时候构建一个 gem 而不是创建一个插件?拨打电话有任何标准吗?

4

3 回答 3

9

现在插件已经过时了,因为您可以通过 environment.rb 中的“config.gem”语句来管理 gem。Gems 在系统范围内可用(不仅仅是在一个应用程序中),并且与插件不同的是版本控制。

我最近将所有插件都转换为 gems。很容易做,很值得。

于 2009-01-13T23:22:01.113 回答
1

Rails 似乎正在朝着 gem 方向发展。我现在已经将我的大部分插件转换为 gems。Gems 更易于管理并且更适合 Ruby 生态系统。为什么我们仍然需要两个独立的系统?

然而,gem 仍然存在一个问题:无法从 gem 向 Rails 应用程序添加 rake 任务。发电机可能同样适用,尽管我不确定。如果您在插件中使用这些,则尚无法迁移到 gem。希望这很快得到解决。

于 2009-01-14T07:47:14.633 回答
1

您可以通过 gems 将生成器添加到 rails。这实际上非常简单,您只需将 rails_generators 目录添加到您的 gem。(我认为其他目录名称也可以使用——我不确定 rails 搜索的是什么)。示例:http: //github.com/remi/rackbox/tree/a21c21667c68d5fd51357e28f0742171e9161e9b/rails_generators

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

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

许多宝石要求您将它们“引导”到您的 Rails 项目中,例如。sudo gem install cucumber cd rails_app ./script/generate cucumber # bootstrap cucumber into your app

于 2009-02-03T20:27:43.567 回答