0

標準の .rb ファイルを取り、定義されているすべてのクラスまたはモジュール、各クラスまたはモジュールで定義されているすべてのメソッドと変数をリストし、メソッドがエイリアス化されているかどうかを示す単純なドキュメント ジェネレーターを ruby​​ で作成したいと考えています。スーパークラスから継承。

これにどのようにアプローチすればよいですか?

4

1 に答える 1

2

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

もちろん、これは単なるばかげた例であり、メソッドとクラスをリストするだけです。

于 2013-02-02T06:10:24.550 に答える