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.

Apenas Um Comentário para “DrX – Um visualizador gráfico de objetos Ruby”

  1. #1
    Marcos Disse:

    Interessante. Vou dar uma olhada nele.

Deixe um Comentário