我想用 ruby 编写一个简单的文档生成器,它将采用标准的 .rb 文件并列出所有定义的类或模块,每个类或模块中定义的所有方法和变量,并指出是否有任何方法是别名或继承自超类。
我应该如何处理这个?
我想用 ruby 编写一个简单的文档生成器,它将采用标准的 .rb 文件并列出所有定义的类或模块,每个类或模块中定义的所有方法和变量,并指出是否有任何方法是别名或继承自超类。
我应该如何处理这个?
逆向工程 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
当然,这只是一个愚蠢的例子,只是列出了方法和类。