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