0

我想用 ruby​​ 编写一个简单的文档生成器,它将采用标准的 .rb 文件并列出所有定义的类或模块,每个类或模块中定义的所有方法和变量,并指出是否有任何方法是别名或继承自超类。

我应该如何处理这个?

4

1 回答 1

2

逆向工程 YARD 可能是最好的主意(不知道为什么它是评论)。或者,您可以使用ruby​​_parser gem 来执行此操作。

require 'ruby_parser'

class SillyRubyParserExample
  def self.example
    class_eval(RubyParser.new.parse(<<-EOS
      class ParseMe
        def a() end
        def b() end
      end
    EOS
    ).inspect)
  end

  def self.s(*args)
    if args[0] == :defn
      puts "def " + args[1].to_s
    elsif args[0] == :class
      puts "class " + args[1].to_s
    end
  end
end

SillyRubyParserExample.example

产生:

def a
def b
class ParseMe

当然,这只是一个愚蠢的例子,只是列出了方法和类。

于 2013-02-02T06:10:24.550 回答