%define upstream_name Class-Method-Modifiers Name: perl-%{upstream_name} Version: 2.15 Release: 1 Summary: Provides Moose-like method modifiers License: GPL+ or Artistic Group: Development/Perl Url: https://metacpan.org/pod/Class::Method::Modifiers Source0: http://www.cpan.org/modules/by-module/Class/%{upstream_name}-%{version}.tar.gz BuildRequires: perl-devel BuildRequires: perl(ExtUtils::MakeMaker) BuildRequires: perl(MRO::Compat) BuildRequires: perl(Test::Exception) BuildRequires: perl(Test::More) BuildRequires: perl(Test::Fatal) BuildRequires: perl(Test::Requires) BuildRequires: perl(Test::Needs) BuildArch: noarch %description 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(@_)'. I for one have trouble remembering that exact invocation, so my classes seldom re-dispatch to their base classes. Very bad! '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. See the 'MODIFIERS' section for more details on how the particular modifiers work. %prep %autosetup -p1 -n %{upstream_name}-%{version} %build perl Makefile.PL INSTALLDIRS=vendor %make_build %check make test %install %make_install %files %doc Changes %{_mandir}/man3/* %{perl_vendorlib}/Class