標準の .rb ファイルを取り、定義されているすべてのクラスまたはモジュール、各クラスまたはモジュールで定義されているすべてのメソッドと変数をリストし、メソッドがエイリアス化されているかどうかを示す単純なドキュメント ジェネレーターを ruby で作成したいと考えています。スーパークラスから継承。
これにどのようにアプローチすればよいですか?
標準の .rb ファイルを取り、定義されているすべてのクラスまたはモジュール、各クラスまたはモジュールで定義されているすべてのメソッドと変数をリストし、メソッドがエイリアス化されているかどうかを示す単純なドキュメント ジェネレーターを ruby で作成したいと考えています。スーパークラスから継承。
これにどのようにアプローチすればよいですか?
YARDのリバースエンジニアリングはおそらく最良のアイデアです(なぜそれがコメントなのかはわかりません)。または、 ruby_parsergemを使用してこれを行うこともできます。
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
もちろん、これは単なるばかげた例であり、メソッドとクラスをリストするだけです。