ruby-on-rails – 在运行时,如何检查从哪里加载模块或类?

我有一个遗留的rails应用程序,在全局命名空间中有很多有趣的(无用的)模块和类.我想知道使用rails c需要哪些文件或宝石.

我知道它存在于方法:.source_location,__ line __,__ file__和调用者对象,但似乎与确定类或模块的来源无关.

有任何想法吗 ?谢谢!

使用:

> Ruby 1.9.2
>撬
> Rails 3.1.1

最佳答案 您无法直接为类/模块找到它 – 但是如果您查看类/模块上定义的方法,您可以找到它们的定义位置 – 通过代理,也可以定义类/模块的位置.

Pry你可以去:

[3] (pry) main: 0> stat Set#initialize
Method Information:
--
Name: initialize
Owner: Set
Visibility: private
Type: Unbound
Arity: -1
Method Signature: initialize(enum=?, &block)
Source Location: /Users/john/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/set.rb:67

看看上面的最后一项.

点赞