首页 > 解决方案 > 如何通过命令行获取 Ruby 类中定义的方法的详细列表?

问题描述

我正在寻找一种在 Ruby 类中生成所有方法列表的方法,类似于 C 头文件。我想要这个,这样我就可以看到类的概述,而无需使用 IDE 代码折叠来折叠所有内容。

最好这将是一个 *nix 命令行函数,以便我可以使用其他命令行工具进一步处理它。

输出将类似于

def foo( a, b, c )
def bar
def baz( d )

类似于这个问题,除了我正在寻找一个包含参数的列表并且我想输出到命令行以便可以进一步处理它。目标是在我工作时让这个列表可见,所以我希望它一目了然。

标签: rubyfunctionclasscommand-line

解决方案


用于instance_methods该类,然后查询参数

例如

class A 
  def foo
  end
  def bar(a,b,c)
  end
end


A.instance_methods(false).each do |s|
   print "def #{s}(#{A.instance_method(s).parameters})\n"
end

输出:

def foo([])
def bar([[:req, :a], [:req, :b], [:req, :c]])

您可能需要获取子进程参数数组才能仅获取名称。

至于命令行,只需将其保存到 ruby​​ 脚本中即可。


推荐阅读