你如何将一个类回溯到它加载的库/ gem?

时间:2017-05-18 11:52:08

标签: ruby rubygems

如果我有一个Ruby类和Gemfile千行的类,那么解决class => gem关系的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

拥有 1000行的Gemfile 可能会成为痛苦的主要来源,尤其是在升级库时 - 这是一个巨大的依赖项列表!!

通常只需查看命名约定,通常可以明显看出哪个gem是源代码。但是,如果没有,您可以使用Method#source_location跟踪它:

> puts method(:mystery_method).source_location
> puts MysteryClass.method(:initialize).source_location

如果您使用pry,那么还有一个方便的命令用于显示类/方法的源代码(使用show-method命令,或简称为$):

(pry) > $ mystery_method
(pry) > $ MysteryClass

另外值得一提的是Method#super_method - 在跟踪复杂继承/混合的行为时非常有用。