Re: Moose/mouse r/o variables

[email protected] (Chris Weyl)
Newsgroups perl.moose
Message-ID <[email protected]>
On Wed, Mar 30, 2011 at 1:23 PM, Matt S Trout <[email protected]>wrote:

> On 30/03/11 20:20, Chris Weyl wrote:
>
>> On Mon, Mar 28, 2011 at 6:22 AM, Stevan Little<
>> [email protected]>  wrote:
>>
>>
>>> On Mar 28, 2011, at 8:28 AM, Peter Gordon wrote:
>>>
>>>  I have a small class, where I would like the variables to be read only
>>>> by external calls, but rw for internal access.
>>>>
>>>
>>> has 'foo' =>  ( is =>  'ro', writer =>  '_set_foo', ... );
>>>
>>> Is the more common method for this.
>>>
>>
>>
>> On a related note, I actually found myself using that construction
>> frequently enough that I finally put together an attribute trait to take
>> "is
>> =>  'rwp'" (read-write-private) which then sets "is =>  'ro', writer =>
>> '_$name'".  It's on the CPAN at MooseX::AttributeShortcuts... The next
>> version is likely to be parameterizable, so '_set_$name' could be the
>> generated writer name.
>>
>
> _set_$name is the convention pretty much everywhere I see it done so that
> should be the default.
>

I'm a little disinclined to make this change as I've already published the
package to the CPAN.  It's only a couple days old though, so if this is The
Way It Should Be I can get over that :)


> It'd also be nice if you could steal Moo's is => 'lazy' shortcut since I'd
> like that to work for people doing Moose stuff as well in order to be able
> to de-experimental it since it's rather nicer than lazy_build
>

No problem.  I hadn't seen that before, but it certainly looks like a
reasonable shortcut to me.

                               -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.