Packages / openSUSE Tumbleweed / Unspecified / perl-MooseX-NonMoose
[Source: perl-MooseX-NonMoose]
Package: perl-MooseX-NonMoose (0.270.0-1.6)
[Project overview: libmoosex-nonmoose-perl]
Easy subclassing of non-Moose classes
'MooseX::NonMoose' allows for easily subclassing non-Moose classes with
Moose, taking care of the annoying details connected with doing this, such
as setting up proper inheritance from Moose::Object and installing (and
inlining, at 'make_immutable' time) a constructor that makes sure things
like 'BUILD' methods are called. It tries to be as non-intrusive as
possible - when this module is used, inheriting from non-Moose classes and
inheriting from Moose classes should work identically, aside from the few
caveats mentioned below. One of the goals of this module is that including
it in a Moose::Exporter-based package used across an entire application
should be possible, without interfering with classes that only inherit from
Moose modules, or even classes that don't inherit from anything at all.
There are several ways to use this module. The most straightforward is to
just 'use MooseX::NonMoose;' in your class; this should set up everything
necessary for extending non-Moose modules.
MooseX::NonMoose::Meta::Role::Class and
MooseX::NonMoose::Meta::Role::Constructor can also be applied to your
metaclasses manually, either by passing a '-traits' option to your 'use
Moose;' line, or by applying them using Moose::Util::MetaRole in a
Moose::Exporter-based package. MooseX::NonMoose::Meta::Role::Class is the
part that provides the main functionality of this module; if you don't care
about inlining, this is all you need to worry about. Applying
MooseX::NonMoose::Meta::Role::Constructor as well will provide an inlined
constructor when you immutabilize your class.
'MooseX::NonMoose' allows you to manipulate the argument list that gets
passed to the superclass constructor by defining a 'FOREIGNBUILDARGS'
method. This is called with the same argument list as the 'BUILDARGS'
method, but should return a list of arguments to pass to the superclass
constructor. This allows 'MooseX::NonMoose' to support superclasses whose
constructors would get confused by the extra arguments that Moose requires
(for attributes, etc.)
Not all non-Moose classes use 'new' as the name of their constructor. This
module allows you to extend these classes by explicitly stating which
method is the constructor, during the call to 'extends'. The syntax looks
like this:
extends 'Foo' => { -constructor_name => 'create' };
similar to how you can already pass '-version' in the 'extends' call in a
similar way.
Other Packages Related to perl-MooseX-NonMoose:
dep: perl(:MODULE_COMPAT_5.44.0)
Package not available
dep: perl(List::Util) (>= 1.33)
Package not available
dep: perl(Module::Runtime)
Package not available
dep: perl(Moose::Exporter)
Package not available
dep: perl(Moose::Role) (>= 2.0000)
Package not available
dep: perl(Moose::Util)
Package not available
dep: perl(Try::Tiny)
Package not available
Download perl-MooseX-NonMoose
| Architecture | Package Size | Installed Size | Files |
|---|
| noarch | 36 KiB | 59 KiB | [list of files] |
Package file paths (17)
Paths come from the repository package-file index for the observed builds. They describe archive/package associations, not every file that will exist on a running system after maintainer scripts, alternatives, generated state, diversions, or installation choices.
- /usr/lib/perl5/vendor_perl/5.44.0/MooseX
- /usr/lib/perl5/vendor_perl/5.44.0/MooseX/NonMoose
- /usr/lib/perl5/vendor_perl/5.44.0/MooseX/NonMoose/InsideOut.pm
- /usr/lib/perl5/vendor_perl/5.44.0/MooseX/NonMoose/Meta
- /usr/lib/perl5/vendor_perl/5.44.0/MooseX/NonMoose/Meta/Role
- /usr/lib/perl5/vendor_perl/5.44.0/MooseX/NonMoose/Meta/Role/Class.pm
- /usr/lib/perl5/vendor_perl/5.44.0/MooseX/NonMoose/Meta/Role/Constructor.pm
- /usr/lib/perl5/vendor_perl/5.44.0/MooseX/NonMoose.pm
- /usr/share/doc/packages/perl-MooseX-NonMoose
- /usr/share/doc/packages/perl-MooseX-NonMoose/Changes
- /usr/share/doc/packages/perl-MooseX-NonMoose/README
- /usr/share/licenses/perl-MooseX-NonMoose
- /usr/share/licenses/perl-MooseX-NonMoose/LICENSE
- /usr/share/man/man3/MooseX::NonMoose.3pm.gz
- /usr/share/man/man3/MooseX::NonMoose::InsideOut.3pm.gz
- /usr/share/man/man3/MooseX::NonMoose::Meta::Role::Class.3pm.gz
- /usr/share/man/man3/MooseX::NonMoose::Meta::Role::Constructor.3pm.gz
Field source: openSUSE Tumbleweed OSS revision tumbleweed-oss-multiarch:4db10cdde3ad82c7e22be35753c9e164b4bdd30f92db4aee17a0d4c94c5f902f