【问题标题】:Working on gem within a Rails app在 Rails 应用程序中处理 gem
【发布时间】:2013-05-31 03:49:18
【问题描述】:

在一个普通的 ole Ruby gem 上工作,然后快速转身并在 Rails 应用程序中运行它的最简单方法是什么?

我喜欢将应用程序逻辑排除在 Rails 之外。鼓励跨项目重用代码,并保持我的 Rails 应用程序干净。然而,它产生了一个丑陋的工作流程:

  1. 测试我的宝石。 rake test
  2. 构建我的宝石。 gem build ...
  3. 将 gem 上传到私有存储库(当前使用 Gemfury)。 fury push ...
  4. 从 Rails 中更新我的 gem(包更新...)
  5. 运行我的 Rails 代码。

哎呀。我想简单地将我的文件保存在库中,然后观察它在 Rails 项目中的工作。

Clojure 的 Leiningen 有一个名为 "checkouts" 的概念,允许您在一个库中处理多个库。

技术,任何人?

【问题讨论】:

    标签: ruby-on-rails ruby clojure rubygems leiningen


    【解决方案1】:

    使用 Bundler 的 path 指令。

    gem 'my_gem', :path => "~/my_gem"
    

    每次您的代码更改以重新加载它时,您仍然需要重新启动 Rails 服务器,但您不必为每个修订完成整个构建和发布步骤。在推送您的代码之前,请务必将您的 gem 引用更新为对生产有价值的东西。

    【讨论】:

    • 可以在 gem 更改时使用 guardguard-shell 动态地 touch tmp/restart.txt
    • 有什么方法可以避免在每次部署推送之前打开 Gemfile 并更改 gem 的引用?
    • 您可以在:development 组中执行:path 并在:production 中指定实际版本
    • Michael,Bundler 似乎明确禁止这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-22
    • 2011-08-14
    • 1970-01-01
    • 2017-09-29
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多