On 14 Mar 2012, at 17:21, Caleb Cushing wrote:
> I'm not saying new_with_traits is bad, or with_traits is bad, just
> that I'd like to be able optionally turn on a way to do it with just
> ->new . regardless of whether it changes peoples expectations of what
> new does (because otherwise I have to change a different expectation,
> which construction method to use )
package MyApp::Role::TraitsInBuild;
use Moose::Role;
sub BUILD {}
after BUILD => sub {
my ($self, $args) = @_;
foreach (@{$args->{traits}}) {
$_->meta->apply($self);
}
};
Or you can around new => sub {… and have the logic there…
Or whatever you like really.
I don't think that what you want is at all hard, I just think it's a bad idea
to do it as a standard in any way.. :)
Cheers
t0m