我想知道在浏览示例时,如何在安装gems时找到源库。例如,我有
require 'oauth2'
安装,我运行
gem install oauth2
从哪个存储库中进行gem安装?我想使用反射对样本中的某些调用进行反向工程。
答案 0 :(得分:3)
默认情况下,gem
从主要的宝石存储库Rubygems中提取,但是如果您给它提供URL或使用--source
选项来指定备用源,则可以从任何地方安装。有些人倾向于使用私有gem托管作为其依赖项。
为什么不使用Gemfile
来管理依赖项?这使它更加清晰:
source 'https://rubygems.org/'
gem 'oauth2'
然后安装:
bundle install
然后您可以看到它的安装位置:
bundle show oauth2
从那里您可以查看源代码。您还可以查看gem listing page for oauth2
,其中提供了指向文档和源的链接。
答案 1 :(得分:1)
有一些有用的选项可用于查看红宝石宝石的源代码。 正如@tadman所提到的,您通常可以期望将默认的gem源托管在https://rubygems.org上,并且强烈建议使用Bundler。
在许多情况下,开源代码将托管在https://github.com上。我倾向于选择派生gem资源并在本地下载我的派生文件,以便在编辑器中对其进行分析,而不必担心会意外破坏任何东西,因为您的分叉的回购将包含完整的git历史记录/回购等。
如果您不熟悉ruby,我强烈建议您使用ruby版本管理器,即RVM或RBENV,尽管我倾向于发现RVM更为简单且问题较少。
我个人最喜欢的红宝石代码入侵/检查工具是PRY