ruby - 如何使用本地源目录中的代码替换 Ruby gem

标签 ruby installation rubygems

我一直在使用作为 gem 安装的 Ruby 包。现在我想修改代码,尝试修复错误/添加功能。我可以从 GitHub 下载该包的源代码,但是,我不确定下一步该怎么做。

有没有一种简单的方法可以用本地源目录中的代码替换特定的 gem?理想情况下,该过程应该足够简单,以便我能够在修改代码时不断更新。

此外,此包用作其他 gem 的依赖项,理想情况下使用此 gem 的其他包将使用更新的版本。 (因为我最终运行的程序来自其他 gems 之一。)有没有一种方法可以在不从源代码安装其他包的情况下进行安装?

(如果可以让事情变得更容易的话,这将在 Linux 上进行。)

最佳答案

假设您使用bundler,您可以在Gemfile中进行设置。如果您不确定您使用的捆绑程序,请查看项目的根目录。应该有一个名为 Gemfile 且没有扩展名的文件。该文件的存在通常表明该项目的作者正在使用 bundler 。下面描述的所有更改都应在该文件内进行。

gem HashMap 中的 :path:git 键可用于将 ruby​​gems 指向不同的位置。当我使用 :path 时,我将有两个不同的 ruby​​ 项目。第一个项目是事件项目。我目前正在从事的项目。该项目需要我需要更新的相关 gem。第二个项目将是我想要更改的 gem 的 checkout 源代码。通过这两个项目设置,我可以编辑第一个项目的 Gemfile 并将其指向第二个项目。这是使用 :path 完成的。

# The Gemfile of the first project
gem 'the_gem_in_question', :path => '/the/path/to/the/second/project'

关于ruby - 如何使用本地源目录中的代码替换 Ruby gem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38135612/

相关文章:

ruby - 在 Ruby 类上定义哪个方法来为其实例提供复制/克隆?

Android PackageInstaller 未安装 APK

ruby - 如何在 Minitest 中使用 block 语法?

ruby-on-rails - SendGrid 将多个电子邮件地址添加到营销电子邮件 API

ruby-on-rails - rails :confirm | How to select “Cancel” by default in confirm box?

ruby - 任务 rake 问题, ruby

c++ - 安装 Visual Studio 需要 40 多个小时

windows - Inno Setup - 检查目标中是否存在文件,否则不中止安装

rubygems - "Signature of configuration file has changed!"运行后 '' overcommit --sign"

ruby - 使用 child_process 从 io.js 运行/安装 ruby​​ gem