суббота, 14 августа 2010 г.

RDia — иерархия классов и модулей Ruby для GraphViz

Возникло у меня желание автоматом создавать граф иерархии классов и модулей Ruby в формате DOT для последующей обработки утилитами GraphViz. Вообще-то такая возможность есть в штатном автодокументаторе RDoc, но она меня не устроила — немного не то, не настраивается, не во всех шаблонах доступна.

Немного поковырялся и написал, благо Ruby поддерживает богатые возможности самоисследования. Базируется работа программы, которую я решил обозвать RDia, именно на них, а не на разборе кода, ибо очевидно, что транслятор Ruby с этим разбором справится дешевле и качественнее. Кроме того, этот подход позволяет отображать и классы/модули, созданные динамически.

Собственно файл я выложил на гугльдоки, его можно скачать, посмотреть и сделать исполняемым. Вообще, с ним можно делать что угодно в рамках GNU GPL.

Под катом подробное описание и примеры.