On Thu, Sep 30, 2010 at 02:35:13PM -0400, Hans Dieter Pearcey wrote:
> We don't like the fact that lazy_build autogenerates public clear_$attr and
> has_$attr methods for you....
> 1) reuse 'builder', i.e. 'builder => 1' is special cased to be the same as
> 'builder => "_build_$attr"'
>
> Someone said "what about subs named '1'?" but I think we're probably all OK
> with ignoring anyone crazy enough to do that.
That was me, but I want to make clear that even I am not so crazy to do
that :)
> 3) make the clearers and predicates generated by lazy_build issue deprecation
> warnings the first time they're called that suggest specifying a clearer
> and/or
> predicate, and ship a Moose::Deprecated::LazyBuildPublicMethods (or whatever)
> to shut them up.
I like option #3 best, but doing #1 as well might be quite useful too --
I can forsee an outcry "what, you mean I need to type out my builder method
names?
> Upside: people who aren't affected don't have to care, people who are affected
> have a simple solution ("just add 'use Moose::Deprecated::blahblah' to your
> class"). Also, we never have to actually remove the clearers/predicates and
> risk breaking people's code if we don't want to.
deprecations++.
Thanks for writing this up, Hans!
--
A: To be or not to be.
Q: What is the square-root of four b-squared?
. . . . .
Karen Etheridge, [email protected] GCS C+++$ USL+++$ P+++$ w--- M++
http://etheridge.ca/ PS++ PE-- b++ DI++++ e++ h(-)