Skip to content

DavidMcLaughlin/MooseX-ChainedAccessors

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

Chained accessors in Moose

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages