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 railroadyAgora 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