Hi again,
(Sorry, forgot to include this in the previous mail!)
MooseX::AttributeHelpers 0.11 has a great new features, thanks to
Jason May. You can easily curry in arguments for the created methods.
Here's a simplistic example.
package Class;
has 'foo' => (
metaclass => 'Number',
is => 'rw',
curries => {
set => {
zero_foo => [ 0 ],
one_foo => [ 1 ],
},
mul => {
double_foo => [ 2 ],
triple_foo => [ 3 ],
},
div => {
oh_shit => [ 0 ],
},
},
);
Class->zero_foo; # start at 0
Class->one_foo; # set to 1
Class->triple_foo; # set to 3
Class->triple_foo; # set to 9
Class->halve_foo; # set to 4.5
Class->oh_shit; # explodes because 4.5 / 0 is an error :)
It's pretty nifty! Especially because you can now have multiple
curried methods of one type (see how I have two methods for "set" and
"mul").
Shawn M Moore
__END__
0.11 Thurs. Jun 26, 2008
- add the ability to curry method providers (thanks to jasonmay)
- Counter: add set and allow inc and dec to accept args
- add Bool as an attribute helper (thanks to jasonmay)
- bump all modules to version 0.11 for consistency (sartak)