Ruby工具浏览已安装的gems代码

Ruby工具浏览已安装的gems代码,ruby,rubygems,Ruby,Rubygems,我正在使用一个宝石,我很难想出如何使用一个特定的方法 目前要了解它是如何工作的,我必须去github,搜索gem,意识到代码来自一个依赖项,搜索另一个gem的代码库,意识到它是另一个gem,找到它,找到类,然后从一个类转到另一个类,打开很多浏览器选项卡 我在Linux上使用升华文本。有什么工具可以让我直接从gem访问代码吗?您可以使用 它是一个类似于IRB的控制台,您可以查看用普通Ruby编写的任何类/方法的定义 下面是一个使用rgeogem的示例: > pry

我正在使用一个宝石,我很难想出如何使用一个特定的方法

目前要了解它是如何工作的,我必须去github,搜索gem,意识到代码来自一个依赖项,搜索另一个gem的代码库,意识到它是另一个gem,找到它,找到类,然后从一个类转到另一个类,打开很多浏览器选项卡

我在Linux上使用升华文本。有什么工具可以让我直接从gem访问代码吗?

您可以使用

它是一个类似于IRB的控制台,您可以查看用普通Ruby编写的任何类/方法的定义

下面是一个使用
rgeo
gem的示例:

> pry                                                                                                               
[1] pry(main)> require 'rgeo'
=> true
[2] pry(main)> show-source RGeo::Cartesian.factory

From: ~/.rvm/gems/ruby-2.3.1/gems/rgeo-0.6.0/lib/rgeo/cartesian/interface.rb @ line 27:
Owner: #<Class:RGeo::Cartesian>
Visibility: public
Number of lines: 7

def preferred_factory(opts_ = {})
  if ::RGeo::Geos.supported?
    ::RGeo::Geos.factory(opts_)
  else
    simple_factory(opts_)
  end
end
撬 [1] 撬(主)>需要“rgeo” =>正确 [2] pry(主)>显示源RGeo::Cartesian.factory From:~/.rvm/gems/ruby-2.3.1/gems/rgeo-0.6.0/lib/rgeo/cartesian/interface.rb@line 27: 所有者:# 能见度:公众 行数:7 def首选_工厂(选项_={}) 是否支持if::RGeo::Geos? ::RGeo::地理工厂(选项) 其他的 简单工厂(opts) 结束 结束 您可以将gems“供应商化”,也就是说,将它们安装在您系统的其他地方,它们位于您的项目中。这样,编辑器就可以更轻松地访问源代码

如果您使用bundler,您可以执行类似于
bundle package
的操作,将您的gems放入
/vendor/cache
。参考:

我使用的另一种方法是,这将管理您的
$GEM_HOME
,安装gems的地方。您可以执行以下操作:

cd ~/dev/my_project
gem_home .
bundle install
然后,您将在
~/dev/my_project/.gems
中找到您的所有gems


无论您使用哪种方法,都不要忘记将目录从版本控制中排除,例如添加到
.gitignore

是的,这就是我使用的方法。我认为问题在于找不到gem的源代码。问题是确定它是哪个gem,然后直接转到它的代码。
显示源代码的功能。