Path::FindDev::Object - Object oriented guts to FindDev
version 0.5.0
require Path::FindDev::Object; my $finder = Path::FindDev::Object->new(); my $dev = $finder->find_dev($path);
This module implements the innards of Path::FindDev, and is only recommended for use if the Exporter API is insufficient for your needs.
Path::FindDev
API
has_set
Determines if the set attribute exists
set
has_uplevel_max
Determines if the uplevel_max attribute is provided.
uplevel_max
find_dev
Find a parent at, or above $OtherPath that resembles a devel directory.
$OtherPath
devel
my $path = $object->find_dev( $OtherPath );
(optional)
The Path::IsDev::HeuristicSet subclass for your desired Heuristics.
Path::IsDev::HeuristicSet
If provided, limits the number of uplevel iterations done.
uplevel
( that is, limits the number of times it will step up the hierarchy )
nest_retry
The number of dev directories to ignore in the hierarchy.
dev
ignore
This is provided in the event you have a dev directory within a dev directory, and you wish to resolve an outer directory instead of an inner one.
By default, this is 0, or "stop at the first dev directory"
0
isdev
The Path::IsDev object that checks nodes for dev-ishness.
Path::IsDev
_instance_id
An opportunistic sequence number for help with debug messages.
Note: This is not guaranteed to be unique per instance, only guaranteed to be constant within the life of the object.
Based on refaddr, and giving out new ids when new refaddr's are seen.
refaddr
my $id = $object->_instance_id;
BUILD
BUILD is an implementation detail of Moo/Moose.
Moo
Moose
This module hooks BUILD to give a self report of the object to *STDERR after ->new when under $DEBUG
*STDERR
->new
$DEBUG
_debug
The debugger callback.
export PATH_FINDDEV_DEBUG=1
to get debug info.
$object->_debug($message);
_error
The error reporting callback.
$object->_error($message);
_step
Inner code path of tree walking.
my ($dev_levels, $uplevels ) = (0,0); my $result = $object->_step( path($somepath), \$dev_levels, \$uplevels ); $result->{type} eq 'stop' # if flow control should end $result->{type} eq 'next' # if flow control should ascend to parent $result->{type} eq 'found' # if flow control has found the "final" dev directory
Kent Fredric <kentfredric@gmail.com>
This software is copyright (c) 2014 by Kent Fredric <kentfredric@gmail.com>.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Path::FindDev, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Path::FindDev
CPAN shell
perl -MCPAN -e shell install Path::FindDev
For more information on module installation, please visit the detailed CPAN module installation guide.