4 package MooseX::InsideOut;
5 # ABSTRACT: inside-out objects with Moose
9 use Moose::Util::MetaRole;
10 use MooseX::InsideOut::Role::Meta::Instance;
12 Moose::Exporter->setup_import_methods(
20 Moose::Util::MetaRole::apply_metaclass_roles(
21 for_class => $p{for_class},
22 instance_metaclass_roles => [ 'MooseX::InsideOut::Role::Meta::Instance' ],
33 use MooseX::InsideOut;
35 # ... normal Moose functionality
40 use MooseX::InsideOut;
41 extends 'Some::Other::Class';
45 MooseX::InsideOut provides metaroles for inside-out objects. That is, it sets
46 up attribute slot storage somewhere other than inside C<$self>. This means
47 that you can extend non-Moose classes, whose internals you either don't want to
48 care about or aren't hash-based.
52 Apply the instance metarole necessary for inside-out storage.
58 =item * dumping (for debugging purposes)
60 =item * serialization (for e.g. storable)
62 =item * (your suggestions here)