2 package MooseX::Storage;
6 $pkg->meta->alias_method('Storage' => sub {
10 'MooseX::Storage::Basic'
13 push @roles => 'MooseX::Storage::Format::' . $params{'format'};
14 Class::MOP::load_class($roles[-1])
15 || die "Could not load format role (" . $roles[-1] . ") for package ($pkg)";
17 if (exists $params{'io'}) {
18 push @roles => 'MooseX::Storage::IO::' . $params{'io'};
19 Class::MOP::load_class($roles[-1])
20 || die "Could not load IO role (" . $roles[-1] . ") for package ($pkg)";
27 package MooseX::Storage::Basic;
30 use MooseX::Storage::Engine;
34 my $e = MooseX::Storage::Engine->new( object => $self );
39 my ( $class, $data ) = @_;
40 my $e = MooseX::Storage::Engine->new( class => $class );
41 $class->new( $e->expand_object($data) );