gem 安装来自哪里?

Where are gem installs coming from?

我想知道,当我筛选示例时,我如何在安装 gems 时找到源库。例如,我有

require 'oauth2'

为了安装,我 运行

gem install oauth2

gem 安装从哪个存储库中提取?我想使用反射对示例中的一些调用进行逆向工程。

默认情况下 gemRubygems 主 gem 存储库中提取,但是如果您给它一个 URL 或使用 --source 选项指定备用源。有些人更喜欢使用私人 gem 托管他们的依赖项。

为什么不使用 Gemfile 来管理您的依赖项?它使它更加清晰:

source 'https://rubygems.org/'

gem 'oauth2'

然后你安装:

bundle install

然后就可以看到安装位置了:

bundle show oauth2

从那里您可以查看源代码。您还可以查看 gem listing page for oauth2,其中提供了指向文档和源代码的链接。

查看 ruby gem 的源代码有一些有用的选项。 正如@tadman 所提到的,您通常可以期望默认的 gem 源托管在 https://rubygems.org and using Bundler 也是强烈推荐的。

在许多情况下,开源代码将托管在 https://github.com 上。我倾向于分叉 gem 源代码并在本地下载我的分叉,这样我就可以在我的编辑器中分析它,而不用担心不小心破坏任何东西,因为你的分叉回购将包含完整的 git history/repo等等

如果您是 ruby 的新手,我强烈建议您使用 ruby 版本管理器,即 RVM or perhaps RBENV,尽管我倾向于发现 RVM 更简单、更少有问题的。

我个人最喜欢的另一个 ruby 代码 hacking/inspecting 工具是 PRY