NAME

XML::Filter::XML_Directory_Pruner - SAX2 filter for restricting the output of the XML::Directory::SAX

SYNOPSIS

use XML::SAX::Writer;
use XML::Directory::SAX;
use XML::Filter::XML_Directory_Pruner;

my $output = "";

my $writer = XML::SAX::Writer->new(Output=>\$output);
my $pruner = XML::Filter::XML_Directory_Pruner->new(Handler=>$writer);

$pruner->exclude(matching=>["(.*)\\.ph\$"]);
$pruner->include(ending=>[".pm"]);

my $directory = XML::Directory::SAX->new(Handler => $pruner,
                                         detail  => 2,
                                         depth   => 1);

$directory->parse_dir($INC[0]);

DESCRIPTION

XML::Filter::XML_Directory_Pruner is a SAX2 filter for restricting the output of the XML::Directory::SAX handler.

PACKAGE METHODS

__PACKAGE__->mtype($file)

Return the media type, as defined by the MIME::Types package, associated with $file.

OBJECT METHODS

$pkg = __PACKAGE__->new()

Inherits from XML::SAX::Base

$pkg->include(%args)

Include *only* that files that match either the starting or ending pattern.

Valid arguments are

  • include

    Array ref.

  • matching

    Array ref. One or more regular expressions.

    note that when this expression is compared, leaning toothpicks (e.g. : /$pattern/) are provided for you.

    In earlier releases, only a string was expected. Newer releases are backward compatible.

  • starting

    Array ref.

  • ending

    Array ref.

$pkg->exclude(%args)

Exclude files with a particular name or pattern from being included in the directory listing.

Valid arguments are

  • exclude

    Array ref.

  • matching

    Array ref. One or more regular expressions.

    note that when this expression is compared, leaning toothpicks (e.g. : /$pattern/) are provided for you.

    In earlier releases, only a string was expected. Newer releases are backward compatible.

  • starting

    Array ref.

  • ending

    Array ref.

  • directories

    Boolean. Default is false.

    files

    Boolean. Default is false.

$pkg->ima($what)

$pkg->current_level()

Read-only.

$pkg->skip_level()

$pkg->debug($int)

Read/write debugging flags.

By default, the package watches and performs actions if the debug level is greater than or equal to :

  • 1

    Nothing.

  • 2

    Prints to STDERR the type, name and level of the current element.

  • 3

    Prints to STDERR the results of checks in $pkg->_compare()

PRIVATE METHODS

$pkg->start_element($data)

$pkg->end_element($data)

$pkg->_on_exit_end_element()

$pkg->characters($data)

$pkg->compare(\%data)

$pkg->_compare($data)

VERSION

1.3

DATE

July 20, 2002

AUTHOR

Aaron Straup Cope

TO DO

  • Allow for inclusion/exclusion based on MIME and/or media type

SEE ALSO

XML::Directory::SAX

XML::SAX::Base

MIME::Types

LICENSE

Copyright (c) 2002, Aaron Straup Cope. All Rights Reserved.

This is free software, you may use it and distribute it under the same terms as Perl itself.