日向夏特殊応援部隊

俺様向けメモ

GraphViz::ISA::MultiでDBICのクラスツリーを作る

もうすぐ送別会なのでソースだけ。
画像もうpりました。
とてもじゃないけど印刷出来ないグラフが表示されます。><

ソース

#!/usr/bin/perl

use strict;
use warnings;

use Module::Find;
use GraphViz::ISA::Multi;

setmoduledirs("./lib");
my @modules = grep { $_ !~ /^DBIx::Class::(PK::Auto::|Storage::DBI::)/ } findallmod("DBIx");
my $gv = GraphViz::ISA::Multi->new();
$gv->add($_) for (@modules);
open(PNG, ">test.png");
print PNG $gv->as_png;
close(PNG);

イメージ

でかいです。


改訂版ソース

ソース読む前にドキュメント読むこと><

#!/usr/bin/perl

use strict;
use warnings;

use Data::Dump qw(dump);
use Module::Find;
use GraphViz::ISA::Multi;

setmoduledirs("./lib");
my @modules = grep { $_ !~ /^DBIx::Class::(PK::Auto::|Storage::DBI::)/ } findallmod("DBIx");
my $gv = GraphViz::ISA::Multi->new();

$gv->add($_) for (@modules);

$gv->graph->{LAYOUT} = "fdp";

open(PNG, ">test.png");
print PNG $gv->as_png;
close(PNG);

改訂版画像