0
我想在ruby中編寫一個簡單的文檔生成器,它將採用標準的.rb文件並列出所有定義的類或模塊,每個類或模塊中定義的所有方法和變量,並指出是否有任何方法是別名或從超類繼承。解析rb文件的定義
我該如何解決這個問題?
我想在ruby中編寫一個簡單的文檔生成器,它將採用標準的.rb文件並列出所有定義的類或模塊,每個類或模塊中定義的所有方法和變量,並指出是否有任何方法是別名或從超類繼承。解析rb文件的定義
我該如何解決這個問題?
反向工程YARD可能是最好的主意(不知道爲什麼它是評論)。或者,你也可以用ruby_parser寶石來做到這一點。
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
當然,這僅僅是一個愚蠢的例子,只是羅列的方法和類。
你可以剖析YARD,看看他們是如何做到的。 –
我看不出你做出的努力。 – sawa