Olhando para os internos de Ruby

Embora isso possa não ser útil para a codificação do dia a dia, se você planeja hackear o próprio Ruby ou apenas for uma pessoa muito curiosa, o seguinte pode ser muito interessante.

Primeiro, há uma maneira de descartar a árvore de sintaxe abstrata (AST) que Ruby cria enquanto analisa seu código:

ruby --dump parsetree file.rb

Isso também pode ser feito de forma programática:

require 'ripper'
code
= << EOC
...
EOC


Ripper.sexp(code)

Como alternativa, você pode descartar as instruções que podem ser geradas para YARV (Yet Another Ruby VM):

ruby --dump insns file.rb

Ou de dentro do Ruby:

RubyVM::InstructionSequence.compile(code).disasm