Re: Role delegation (sort of)
[email protected] (Ben Tilly) Thu, 4 Jul 2013 19:54:07 -0700
| Newsgroups | perl.moose |
|---|---|
| Message-ID | <CANoac9XRcxWgV5CUAqq_Dmf6bVJvd06+J4bGSpUzsO94LNwPGg@mail.gmail.com> |
On Thu, Jul 4, 2013 at 5:10 PM, Buddy Burden <[email protected]> wrote: > 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. Well, actually I made it so that Persistent actually isn't implemented in terms of MooseX::Storage. And therefore Foo won't know that it is. > 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? :-) ) So far it seems oddly familiar yet oddly different. Perhaps in a few years we can switch off again to keep the amusement going. ;-)