【发布时间】:2009-01-13 20:37:44
【问题描述】:
通常,当我知道我将在其他项目中再次需要一个模块时,我会创建一个插件,但是,它们也可以打包为 gem。
我应该何时构建 gem 而不是创建插件?拨打电话有什么标准吗?
【问题讨论】:
标签: ruby-on-rails plugins gem
通常,当我知道我将在其他项目中再次需要一个模块时,我会创建一个插件,但是,它们也可以打包为 gem。
我应该何时构建 gem 而不是创建插件?拨打电话有什么标准吗?
【问题讨论】:
标签: ruby-on-rails plugins gem
现在您可以通过 environment.rb 中的“config.gem”语句来管理 gem,插件已经过时了。 Gems 在系统范围内可用(不仅仅是在一个应用程序中),并且与插件不同。
我最近将我所有的plugins 转换为宝石。 Easy to do 非常值得。
【讨论】:
Rails 似乎正朝着宝石方向发展。我现在已经将我的大部分插件转换为 gems。 Gems 更易于管理并且更适合 Ruby 生态系统。为什么我们仍然需要两个独立的系统?
但是,gem 仍然存在一个问题:无法从 gem 向 Rails 应用程序添加 rake 任务。发电机可能同样适用,尽管我不确定。如果您在插件中使用这些,则尚无法迁移到 gem。希望这会很快得到解决。
【讨论】:
您可以通过 gem 将生成器添加到 rails。这实际上非常简单,您只需将 rails_generators 目录添加到您的 gem。 (我认为其他目录名称也可以使用——我不确定 rails 搜索的是什么)。例如:http://github.com/remi/rackbox/tree/a21c21667c68d5fd51357e28f0742171e9161e9b/rails_generators
至于添加 rake 任务...我还没有弄清楚如何做到这一点:/
现在,我让我的生成器将 require 'myproject/rails/tasks'(或其他内容)添加到项目的 Rakefile 中,作为将 rake 任务从 gem 添加到 rails 的一种方式。
许多 gem 要求您将它们“引导”到您的 Rails 项目中,例如。 须藤宝石安装黄瓜 cd rails_app ./script/generate cucumber # 将 cucumber 引导到您的应用中
【讨论】: