如何将rails应用程序转换为gem?

abs*_*ive 6 rubygems ruby-on-rails ruby-on-rails-3

我在rails应用程序上有一个需要宝石的ruby.珠宝商,帮助创建基本的rubygems.但是,如何将rails应用程序打包为gem?我有一个主应用程序,需要我的rails应用程序作为宝石.我无法集成它们,因为主要的rails应用程序将用作管理应用程序来控制较小的应用程序,在其中作为宝石/引擎运行.

ego*_*lic 5

从Rails 3.0开始,任何Rails应用都是引擎。要将应用程序包装为宝石,您应该:

  1. 使用捆绑器或珠宝商或其他东西创建新的宝石。
  2. 将您的应用程序代码插入gem的lib /目录。
  3. 应用程序的所有类都应位于MyGem模块中,因此请在类名之前添加MyGem,例如:Article => MyGem :: Article。您所有的控制器,模型等都应使用模块GemName命名。
  4. 您的文件lib / my_gem.rb应该包含以下代码:

    module MyGem
      class Engine < Rails::Engine; end
    end
    
    Run Code Online (Sandbox Code Playgroud)

UPD

或者,如果您将使用可安装的引擎,则更好:

$ rails plugin new MyGem
Run Code Online (Sandbox Code Playgroud)

它使用虚拟应用程序生成可安装的引擎,用于测试和gemspec。