logo
Free, Micro AI Code Reviews That Run on Git Commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, Micro AI Code Reviews That Run on Git Commit | Product Hunt git-lrc - Free, Micro AI Code Reviews That Run on Git Commit | Product Hunt

Class::MixinFactory::NEXT - Superclass method redispatch for mixins

Description

       Enhanced superclass method dispatch for use inside mixin class methods. Allows mixin classes to
       redispatch to other classes in the inheritance tree without themselves inheriting from anything.

   PublicMethods
       This package defines one method, named NEXT.

         $callee->NEXT( $method, @args );

       Searches the inheritance tree of the callee until it finds the package from which NEXT is being called,
       and then continues searching until the next class which can perform the named method.

       Unlike SUPER, this method will backtrack down the inheritance tree to find implementations later in the
       search path even if they are on a separate branch.

Name

       Class::MixinFactory::NEXT - Superclass method redispatch for mixins

See Also

       This class is automatically included by Class::MixinFactory.

       This is similar to the functionality provided by NEXT::ACTUAL, but without using AUTOLOAD; for a more
       generalized approach to this issue see NEXT.

       For distribution, installation, support, copyright and license information, see
       Class::MixinFactory::ReadMe.

perl v5.36.0                                       2022-10-22                            MixinFactory::NEXT(3pm)

Synopsis

         use Class::MixinFactory::NEXT;

         package My::BaseClass;
         sub foo { return "Foo Bar" }

         package My::Logging;
         sub foo { warn "Calling foo"; (shift)->NEXT('foo', @_) }

         package My::MixedClass;
         @ISA = ( 'My::Logging', 'My::BaseClass', 'Class::MixinFactory::NEXT'; );

         package main;
         print My::MixedClass->foo();

See Also