Потрошитель включен в МРТ 1.9 из коробки.
ruby-1.9.2-p180 :004 > require 'ripper'
=> true
ruby-1.9.2-p180 :005 > Ripper.sexp("def a; end")
=> [:program, [[:def, [:@ident, "a", [1, 4]], [:params, nil, nil, nil, nil, nil], [:bodystmt, [[:void_stmt]], nil, nil, nil]]]]
В версии 1.8 Ruby выполняет код путем обхода AST, поэтому можно получить AST для данного метода / блока. В 1.9 это не так; код сначала анализируется, затем преобразуется в байт-код YARV, а затем выполняется. Ни источник, ни AST не сохраняются после этапа перевода, и последний не является обратимым; следовательно, вы не можете получить AST для блока в 1.9.