Ben,

Create your role Persistent which requires a number of the methods
from MooseX::Storage and supplies the API that you want.  If $storage
is something that does MooseX::Storage, you can then turn it into a
Persistent thing with:

Persistent->meta->apply($storage);

But this is hiding the implementation from the wrong thing, at least for my purposes. :-)

That is, given that $storage is an instance of type Foo (let's say), then Persistent doesn't know that Foo is implemented in terms of MooseX::Storage. But what I'm looking for is a way that Foo won't know that _Persistent_ is implemented in terms of MooseX::Storage.

That make sense? Beause then Foo's code won't need to change if I want to swap out back-ends; only Persistent's code will need to change, and then everything that is Persistent will magically use the new back-end.


                -- Buddy


(PS: how's the new job going? :-) )

Reply via email to