sexta-feira, 10 de maio de 2013

Gerando diagramas de classes no Ruby on Rails com o Railroady e Graphviz

Postado por DoctorRu (Will)

Entendeu ou quer que eu desenhe?

Muitas vezes o desenho ajuda sim! Principalmente quando falamos de diagramas de tabelas do banco de dados ou das classes no Ruby on Rails.

O ideal é desenhar os diagramas antes de começar a codificar, mas se o projeto não foi documentado e você pega o bonde andando a chave pode ser a engenharia reversa para entender parte da coisa.

Utilizando o Railroady em conjunto com o Graphviz iremos fazer isso, atenção é Railroady com Y no final, essa versão roda na versão 1.9 da Ruby e na 3.2 do Rails.

Primeiro instale a gem railroady:

gem install railroady
Agora baixe o Graphviz em http://www.graphviz.org/Download..php

Após instalar é preciso adicionar o diretório bin do Graphviz ao path do seu sistema operacional, no windows proceda da seguinte maneira, abra: Control Panel\System and Security\System então clique em Environment Variables, selecione Path, clique em Edit e adicione o path do diretório bin da instalação que você acabou de fazer do Graphviz ao final da linha em Variable value, finalize a linha com ";"

































Agora escolha o diretório root de qualquer projeto do Rails e digite:
railroady -ilamM | dot -Tjpg > diagramas_dot.jpg

O comando acima é divido em duas partes, separadas por |, a primeira são os parâmetros do railroady e a segunda são os parâmetros do Graphviz (que é responsável por gerar a imagem.)

No Railroady você obrigatoriamente deve utilizar um destes parâmetros:
-C, -M, -A, respectivamente: Class, Model ou Legenda, os outros parâmetros são opcionais, utilize -h isoladamente para ver todos os disponíveis.

Existem diversos parâmetros que podem ser especificados no Graphiviz, então consulte a documentação, que é vasta, no site do mesmo http://www.graphviz.org/Documentation.php, o parâmetro mais utilizado é o do tipo de mapeamento, algumas sugestões para este são: dot, fdp, neato, osage, sfdp e twopi, sendo o dot, na minha opinião o mais legível, abaixo o exemplo de cada um destes.


dot

fdp (é sério)

neato

osage

sfdp

twopi

O outro parâmetro -T<formato de arquivo> especifica qual o tipo de imagem a ser gerada: jpg, svg, etc, consulte a doc para ver todos os disponíveis, não esqueça de adicionar a extensão correta no nome do arquivo.

Se você encontrar uma combinação bacana de parâmetros para o Graphviz, deixe um comentário com eles!


Esse post foi escrito ao som de Billy Idol - Rat race

0 comentários :

Postar um comentário