Hatena::ブログ(Diary)

Yet Another Hackadelic

2008-03-28

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);

イメージ

でかいです。

f:id:ZIGOROu:20080401123630p:image

改訂版ソース

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

#!/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);

改訂版画像

f:id:ZIGOROu:20080401125701p:image

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。