NAME
mcoder - perl method generator from common templates
SYNOPSIS
package MyClass;
use mcoder [qw(get set)] => [qw(color sound height)], \
proxy => [qw(runner run walk stop)], \
calculated => weight;
sub _calculate_weight { shift->ask_weight }
ABSTRACT
generate common templated methods like accessors, proxies, etc.
DESCRIPTION
mcoder
usage is:
use mcoder $type1 => $arg1, $type2 => $arg2, ...;
use mcoder [$type11, $type12, $type13,...] => $arg1, ...;
where $type
/$arg
pairs can be:
- get
-
use mcoder get => $name; use mcoder get => { $name1 => $attr1, $name2 => $attr2, ... }; use mcoder get => [$name1, $name2, $name3, ...];
generate read accessors that returns the value in
$self->{$name}
or$self->{$attr}
or$self->$attr
. - set
-
use mcoder set => $name; use mcoder set => { $name1 => $attr1, $name2 => $attr2, ... }; use mcoder set => [$name1, $name2, $name3, ...];
generate write accessors named as
set_$name
. - calculated
-
use mcoder set => $name; use mcoder set => { $name1 => $attr1, $name2 => $attr2, ... }; use mcoder set => [$name1, $name2, $name3, ...];
similar to read accessors (
set
) but when the value is unexistant, method_calculate_$name
is called and its result cached. - proxy
-
use mcoder proxy => [$delegate, $name1, $name2, $name3]; use mcoder proxy => [$delegate, { $name1 => $del_method1, $name2 => $del_method2, ... } ];
forward method calls to
$self->$delegate->$del_method
- delete
-
use mcoder delete => $name; use mcoder delete => { $name1 => $attr1, $name2 => $attr2, ... }; use mcoder delete => [$name1, $name2, $name3, ...];
- undef
-
use mcoder undef => $name; use mcoder undef => { $name1 => $attr1, $name2 => $attr2, ... }; use mcoder undef => [$name1, $name2, $name3, ...];
- new
-
use mcoder new => $name;
generates a simple constructor for a hash based object
EXPORT
whatever you ask ;-)
SEE ALSO
mcoder::set, mcoder::get, mcoder::calculated, mcoder::proxy are syntactic sugar for this module.
Class::MethodMaker has a similar functionality.
AUTHOR
Salvador Fandiño, <sfandino@yahoo.com>
COPYRIGHT AND LICENSE
Copyright 2003 by Salvador Fandiño
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 219:
Non-ASCII character seen before =encoding in 'Fandiño,'. Assuming CP1252