From b35ab452fcc03c26f55dc2f6228f0e166514b764 Mon Sep 17 00:00:00 2001 From: Duke Leto Date: Sun, 19 Jul 2009 18:27:19 -0700 Subject: [PATCH] add a script for visualizing inheritance of modules via Class::Sniff --- bin/class_sniff_graph.pl | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100755 bin/class_sniff_graph.pl diff --git a/bin/class_sniff_graph.pl b/bin/class_sniff_graph.pl new file mode 100755 index 0000000..ebac51a --- /dev/null +++ b/bin/class_sniff_graph.pl @@ -0,0 +1,30 @@ +#!/usr/bin/perl5.10 -w + +use strict; +use Class::Sniff; +use Carp qw/croak/; +use Data::Dumper; + +my @packages = @ARGV; + +croak "Usage: $0 Some::Module And::Another" unless @packages; +my @sniffs = map { + my $package = $_; + eval "use $package"; + warn $@ if $@; + Class::Sniff->new({ class => $package }); +} @packages; +die Dumper [ @sniffs ]; +my $sniff = shift @sniffs; + + +my $graph = $sniff->combine_graphs(@sniffs); +warn Dumper $graph; + +my $graphviz = $graph->as_graphviz; +print $graphviz; +open my $DOT, '|dot -Tpng -o graph.png' or die("Cannot open pipe to dot: $!"); +print $DOT $graphviz; + + +