Yeah, I can see how that'd be useful.

If there was one canonical setter in MOP that was always called, we could
before/after/around it, couldn't we?  Is there such a thing?

On Tue, Jul 22, 2008 at 05:52:40PM -0400, Sartak wrote:
> On Tue, Jul 22, 2008 at 10:18 AM, Paul Driver <[EMAIL PROTECTED]> wrote:
> > I think the major benefit of the "around" trigger was being able to filter
> > the value going into the setter.  I don't have any use case for 'before'
> > that couldn't be accomplished with older "standard" (after) triggers - so
> > some kind of setter-filter (needs a better name) would probably do just as
> > well.  That could be done by a MooseX, potentially.
> 
> Anything that depends on the old value would be a use case for
> "before". For example, one of my uses would be:
> 
> has type => (
>     trigger => {
>         before => sub {
>             $registry->unregister_tile_by_type($_[0], $_[1]);
>         },
>         after => sub {
>             $registry->register_tile_by_type($_[0], $_[1]);
>         },
>     },
> );
> 
> before is also useful for additional validation. You want to throw the
> exception *before* you set an invalid value.
> 
> Shawn

Reply via email to