logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Path::FindDev::Object - Object oriented guts to FindDev

Attributes

"set"(optional)

       The "Path::IsDev::HeuristicSet" subclass for your desired Heuristics.

   "uplevel_max"
       If provided, limits the number of "uplevel" iterations done.

       ( 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.

       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"

   "isdev"
       The "Path::IsDev" object that checks nodes for "dev"-ishness.

Author

       Kent Fredric <kentnl@cpan.org>

Description

       This module implements the innards of "Path::FindDev", and is only recommended for use if the Exporter
       "API" is insufficient for your needs.

Methods

"has_set"
       Determines if the "set" attribute exists

   "has_uplevel_max"
       Determines if the "uplevel_max" attribute is provided.

   "find_dev"
       Find a parent at, or above $OtherPath that resembles a "devel" directory.

           my $path = $object->find_dev( $OtherPath );

Name

       Path::FindDev::Object - Object oriented guts to FindDev

Private Methods

"_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.

           my $id = $object->_instance_id;

   "BUILD"
       "BUILD" is an implementation detail of "Moo"/"Moose".

       This module hooks "BUILD" to give a self report of the object to *STDERR after "->new" when under $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

Synopsis

           require Path::FindDev::Object;
           my $finder = Path::FindDev::Object->new();
           my $dev = $finder->find_dev($path);

Version

       version v0.5.3

See Also