gpt4 book ai didi

Ruby 初学者 - 在单个项目中使用/修改现有的 gem

转载 作者:太空宇宙 更新时间:2023-11-03 16:07:04 28 4
gpt4 key购买 nike

如标题所述,我是 Ruby 的初学者。

我的项目使用了 2 个现有的 gem - 我想对其进行修改。我在 GitHub 上 fork 了这些 gems,并将它们作为模块放入我的存储库中,它们显示为一个子目录。

我已经尝试对此进行研究,但我总是迷路 - 我想我在这里遗漏了一些基本概念/知识。

我的问题:

  1. 我这样做是对还是错?
  2. 是否有可能在我的实际项目中包含那些( fork 的)gems 的代码,或者我应该单独更新它们并将它们用作带有 require 的实际 gems(这看起来很麻烦)
  3. 如果这些 gem 是我项目的一部分,我应该如何正确使用它们,我假设我不需要 require 部分?如果没有,我该如何访问/使用它们?

谢谢!

顺便说一句,在 Ubuntu 上使用 Ruby 1.9.2-p194,以 RubyMine 作为 IDE。

最佳答案

  1. 可能是错误的。 Ruby 是一种非常灵活的语言,并且具有所谓的开放类。这意味着您可以在运行时打开和更改类。在外部库上执行此操作称为 monkey patching。因此,您不必复制所有想要保持一致的代码,只需修改类并覆盖您想要的任何方法即可。一个简单的例子:

    class Fixnum
    def is_multiple_of_three?
    self % 3 == 0
    end
    end

    但是,如果您想要的更改真的很重要,那么 fork gem 可能是有意义的。

  2. 我推荐 bundler gem。这将让你制作一个 Gemfile 来列出你所有的依赖项。您可以将 github 存储库列为 gem 的来源,如下所示:

    gem 'gem_name_here', :git => 'git://github.com/username_here/gem_name_here.git'

    然后运行 ​​bundle install 来安装您的依赖项。

  3. 如果您使用 bundler 安装 gem,它的作用就像您安装的任何其他 gem。

关于Ruby 初学者 - 在单个项目中使用/修改现有的 gem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11705246/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com