我想在ruby中编写一个简单的文档生成器,它将采用标准的.rb文件并列出定义的所有类或模块,在每个类或模块中定义的所有方法和变量,并指出是否有任何方法有别名或从超级班继承。
我该如何处理?
答案 0 :(得分: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
当然,这只是一个愚蠢的例子,仅列出方法和类。