           SPELL=class-method-modifiers
          SPELLX=Class-Method-Modifiers
         VERSION=2.15
     SOURCE_HASH=sha512:427d21418516ff296b5a536a2d1f13b81b92d36f1c17c2366bc65fd2f05bf6afc7d02a4257033f53ee14d806b43e8d4322c6eac256d1c0e892926c4e7f878995
          SOURCE=${SPELLX}-${VERSION}.tar.gz
   SOURCE_URL[0]=${PERL_CPAN_URL}/authors/id/E/ET/ETHER/${SOURCE}
SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELLX}-${VERSION}"
        WEB_SITE=https://search.cpan.org/dist/Class-Method-Modifiers/
      LICENSE[0]=GPL
      LICENSE[1]=ART
         ENTERED=20190620
           SHORT="provides Moose-like method modifiers"
cat << EOF
Method modifiers are a powerful feature from the CLOS (Common Lisp
Object System) world. In its most basic form, a method modifier is just
a method that calls $self->SUPER::foo(@_).

Class::Method::Modifiers provides three modifiers: before, around, and
after. "before" and "after" are run just before and after the method they
modify, but can not really affect that original method. "around" is run in
place of the original method, with a hook to easily call that original
method.

One clear benefit of using Class::Method::Modifiers is that you can
define multiple modifiers in a single namespace. These separate modifiers
don't need to know about each other. This makes top-down design easy.
Have a base class that provides the skeleton methods of each operation,
and have plugins modify those methods to flesh out the specifics.

In short, Class::Method::Modifiers solves the problem of making sure you
call $self->SUPER::foo(@_), and provides a cleaner interface for it.
EOF
