Skip to content

Instantly share code, notes, and snippets.

@benvanstaveren
Created June 7, 2011 16:03
Show Gist options
  • Save benvanstaveren/1012552 to your computer and use it in GitHub Desktop.
Save benvanstaveren/1012552 to your computer and use it in GitHub Desktop.
package My::Object;
use Moose ();
use Moose::Exporter;
use namespace::autoclean;
use My::Meta::Types;
use My::Meta::AttributeTraits;
Moose::Exporter->setup_import_methods(
also => 'Moose',
);
sub init_meta {
shift;
return Moose->init_meta(@_, metaclass => 'My::Object::MetaClass');
}
no Moose::Exporter;
package My::Object::MetaClass;
use Moose;
use Moose::Util;
extends 'Moose::Meta::Class';
before 'make_immutable' => sub {
my $self = shift;
my $name = $self->name;
Moose::Util::ensure_all_roles($name, 'My::Role::Object::DBref');
};
1;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment