Re: Trying to create an attribute trait that prompts for a value if none specified

[email protected] (Edward Allen)
Newsgroups perl.moose
Message-ID <CAPaaNjW2wbMd9Fz+xaqOtOV81OKaKKTFKs=ks92uAHXU_AoFMw@mail.gmail.com>
Wrapping _process_options is cool.  I complained about it on irc a few
months ago, and was informed that I was over thinking, and for moose
it is ok.

About a million MooseX modules use this technique.

On Thu, Dec 22, 2011 at 3:27 PM, Chris Weyl <[email protected]> wrote:
> On Thu, Dec 22, 2011 at 3:00 PM, Buddy Burden <[email protected]>
> wrote:
>>
>> No, you've hit it straight on the head, and I agree it's minimally
>> invasive, but the downside is that I'd be wrapping a private method,
>> which strikes me as dangerous.  What if that chunk of Moose guts
>> changes out from under me?
>
>
> I've always had the opinion that if I'm writing metaclass traits, then by
> definition I'm changing the private parts to accomplish my task.  Which to
> me makes it far more acceptable than, say, poking at _process_options() from
> outside of Moose::Meta::Attribute.  That is, I'm not accessing private
> methods inappropriately, as once the trait is consumed it's part of the
> class itself.  (/me braces for contrary commentary)
>
> Well, that and I'm not sure how to accomplish any of this _without_ poking
> at the guts :)
>
> I'm not in a position to guarantee anything, but _process_options() has been
> around for as long as I can remember.  IMHO it's pretty safe to rely on this
> method being there for the foreseeable future.
>
>> BTW, in the odd coincidence department, your AutoDestruct attribute
>> trait was one of the ones I was cribbing off of when I wrote my
>> original attempt (the other being Karen Etheridge's
>> SlurpyConstructor).  So thanks for that inadvertent bit of inspiration
>> as well. :-)
>
>
> No problem!  I'm glad it helped :)
>
>                                              -Chris
>
> --
> Chris Weyl
> Ex astris scientia
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.