DavidMcLaughlin / MooseX-ChainedAccessors
- Source
- Commits
- Network (0)
- Issues (0)
- Downloads (1)
- Wiki (1)
- Graphs
-
Tree:
e85881a
| name | age | message | |
|---|---|---|---|
| |
.gitignore | ||
| |
MANIFEST | ||
| |
Makefile.PL | ||
| |
README | ||
| |
lib/ | ||
| |
t/ |
README
Chained accessors on write operations for Moose.
Works by over-riding accessor generation methods in Moose::Meta::Accessor.
=====
Driving case:
package Debug;
use Moose::Role;
has 'debug' =>
(
traits => ['Chained'],
is => 'rw',
isa => 'Bool',
default => sub { 0; },
);
sub debug_message
{
my ($self, $message) = @_;
print $message . "\n" if $self->debug;
}
1;
package MyClass;
use Moose;
with 'Debug';
sub complex_function
{
my $self = shift;
# ..
$self->debug_message("This is happening");
# ..
return $self;
}
1;
my $results = MyClass->new->debug(1)->complex_function;
========
See http://search.cpan.org/dist/Moose/lib/Moose/Cookbook/Meta/Recipe3.pod for documentation on using traits.
