Хотя я принимаю ответ Йорга, потому что он более полный, я в конечном итоге обнаружил кое-что еще, что я в итоге использовал.ruby_parser устанавливает зависимый гем с именем sexp_processor (именно в этом геме фактически определен класс Sexp
).Если вы просматриваете документацию class , есть несколько методов, которые помогут с базовыми искателями Ruby.Вот пример:
class Sexp
def name # convenience method
self.sexp_body.first
end
end
# Print out all instance methods within classes. Beware - if "code" sexp itself
# is a class, it will NOT be included!
code = RubyParser.new.parse(IO.read('/src/file'))
code.each_of_type(:class){ |klass|
klass.each_of_type(:defn){ |meth|
puts meth.name
}
}