Gene Boggs > GraphViz-Traverse-0.02 > GraphViz::Traverse::Filesystem

Download:
GraphViz-Traverse-0.02.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.02   Source  

NAME ^

GraphViz::Traverse::Filesystem - Visualize a filesystem with GraphViz

SYNOPSIS ^

  use GraphViz::Traverse::Filesystem;
  $g = GraphViz::Traverse::Filesystem->new(
      ratio => 'compress', bgcolor => 'beige'
  );
  $g->traverse($root);
  print $g->as_debug;

DESCRIPTION ^

A GraphViz::Traverse::Filesystem object provides methods to traverse a file system and render it with GraphViz.

Inherit this module to define and use custom node_* and edge_* methods. Example:

  package Foo;
  use strict;
  use warnings;
  use base qw( GraphViz::Traverse::Filesystem );
  sub node_style { return 'filled' }
  sub node_peripheries {
    my $self = shift;
    $_ = shift;
    return !-d $_ && -x $_ ? 2 : 1; # Executable? Get a ring.
  }
  sub node_fillcolor {
    my $self = shift;
    $_ = shift;
    return
        -d $_ ? 'snow' :
        /\.pod$/   ? 'cadetblue' :
        /\.pm$/    ? 'cadetblue4' :
        /\.cgi$/   ? 'cadetblue3' :
        /\.pl$/    ? 'cadetblue2' :
        /(?:readme|changes?)/i ? 'goldenrod' :
        /\.txt$/   ? 'gold4' :
        /\.css$/   ? 'plum' :
        /\.html?$/ ? 'plum3' :
        /\.jpe?g$/ ? 'orchid4' :
        /\.gif$/   ? 'orchid3' :
        /\.png$/   ? 'orchid1' :
        /\.t(?:ar\.)?gz$/ ? 'red3' :
        /\.zip$/   ? 'red1' :
        /\.dump$/  ? 'pink' :
        'yellow';
  }
  sub edge_color { return 'gray' }
  # etc.
  1;

PUBLIC METHODS ^

traverse

  $g->traverse($root);

Traverse a file system starting at the given root path and populate the GraphViz object with file nodes-and path-edges.

SEE ALSO ^

GraphViz

GraphViz::Traverse

COPYRIGHT ^

Copyright 2006, Gene Boggs, All Rights Reserved

LICENSE ^

You may use this module under the license terms of the parent GraphViz package.

AUTHOR ^

Gene Boggs <gene@cpan.org>

syntax highlighting: