On Thu, Feb 04, 2010 at 11:53:50AM -0800, Karen Etheridge wrote:
> On Thu, Feb 04, 2010 at 02:17:32PM -0500, Hans Dieter Pearcey wrote:
> > I'm not sure whether this is a bug or not, but we've been talking about
> > giving
> > initializer the axe for a while. Does anyone feel motivated by this to do
> > so?
>
> I'm currently using an initializer attribute in $work code, to copy values
> out of $obj->attr1 into $obj->attr2 (both are objects) when attr1 is set,
> but I'm staring at the code again now and wondering why I didn't just write
> a trigger instead.
>
> Is there any behavioural difference between initializer and trigger methods
> that I'm missing?
Doh let me rephrase (of course they are different - trigger acts like an
'after' method modifier on the setter, whereas initializer acts like an
'around'). Is there anything one can do with an initializer that can't be
done with a trigger? If one wants to change the value of an attribute if a
particular value was assigned, one could simply call $attr->set_raw_value,
but that bypasses type coercion and some other nice things. Calling
set_value would cause an infinite loop in the trigger.
The only other way through this that I see is to add a new meta-attribute
method set_value_without_trigger, but that's gross!
--
"If you can talk brilliantly enough about a problem, it can create
the consoling illusion that it has been mastered." - Stanley Kubrick
. . . . .
Karen Etheridge, [email protected] GCS C+++$ USL+++$ P+++$ w--- M++
http://etheridge.ca/ PS++ PE-- b++ DI++++ e++ h(-)