Publicado por Rafael Rosa em 18 de May de 2010
DrX – Um visualizador gráfico de objetos Ruby
Quando você quer inspecionar seus objetos Ruby você pode usar Object#inspect, p ou awesome_print, mas você está preso a representações em texto, e todas essas ferramentas foram desenvolvidas para mostrar dados ao invés da estrutura dos objetos. Agora, se você quiser navegar nas classes pai, ver a estrutura e os relacionamentos dos objetos, então você precisa conhecer o DrX, um visualizador gráfico de objetos Ruby!
O DrX se classifica como um "visualizador de objetos simples", mas sua principal funcionalidade é que ele mostra os objetos visualmente, numa interface GUI, e ele se preocupa em mostrar a estrutura por trás dos objetos, ao invés dos dados que ele contém. Vendo como ele se parece já dá para ter uma idéia de como funciona:

Modo de Uso
Uma vez que o DrX esteja instalado (explicarei como fazê-lo na próxima seção), você só precisa fazer require 'drx' na sua aplicação, ou mesmo dentro do irb, e depois chamar o método Object#see para dispará-lo:
require 'drx' 123.see
Mesmo um exemplo simplório como esse irá gerar um gráfico interessante. Porém, o autor do DrX oferece um exemplo mais interessante, para demonstrar as funcionalidades de introspecção da ferramenta:
s = "wizard of oz" def s.strong "<strong>" + self + "!</strong>" end s.see
Instalação e Pré-requisitos
Dependendo do seu ambiente, o DrX pode exigir um quantidade razoável de trabalho para fazê-lo funcionar. Se você está usando Linux e tem um bom ambiente de desenvolvimento, é provável que você já tenha tudo o que precisa, tente rodar gem install drx e veja se os exemplos acima funcionam no irb.
Se não der certo, saiba que o DrX usa o Tk para montar sua GUI multi-plataforma e também precisa que o GraphViz esteja instalado. Instale-os através do seu gerenciador de pacotes e verifique se a sua instalação do Ruby tem as bibliotecas necessárias para usar o Tk, o que é mais fácil falar do que fazer
No OS X 10.6 (Snow Leopard) descobri que a instalação padrão do Ruby não inclui as bibliotecas para Tk, mesmo que o Tk esteja instalado. Porém, ao invés de bagunçar meu ambiente, eu usei o maravilhoso RVM e instalei o Ruby 1.9.2-preview1 (rvm install ruby-1.9.2-preview1). Assim, o Tk funcionou sem problema e gem install rbx também deu certo, e para instalar o Graphviz, sudo port install graphviz resolveu o problema. Porém, se você é um dos que não curte o Macports, terá que encontrar uma solução diferente, talvez o Homebrew já tenha uma receita pronta.

Clique aqui para adicionar ao del.icio.us

18 de May de 2010 às 13:10
Interessante. Vou dar uma olhada nele.