fletch / MooseX-ChainedAccessors

Chained accessors in Moose

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MooseX::ChainedAccessors

Chained accessors on write operations for Moose.

INSTALLATION

    To install this module, run the following commands:
    
    perl ./Makefile.PL
    make test
    make install


USAGE

    package MyClass;
    use Moose;
    
    has 'chained_attr' =>
    (
        traits => ['Chained'],
        is     => 'rw',
        isa    => 'Str',        
    );
    
    sub my_method
    {
        my $self = shift;
        print 'hello, ' . $self->chained_attr;
    }
    
    1;    
    
    MyClass->new->chained_attr('world')->my_method(); # hello, world!


Chained accessors also work with explicit 'reader/writer' accessors. 

    package MyClass;
    use Moose;
    
    has 'attr' => 
    (
        traits => ['Chained'],
        is     => 'rw',
        isa    => 'Str',
        reader => 'get_attr',
        writer => 'set_sttr',
    );
    
    sub my_method
    {
        my $self = shift;
        print $self->get_attr;
    }
    
    1l
    
    MyClass->new->set_attr('hello, world')->my_method(); # hello, world

Hopefully it's obvious why read operations can't be chained. 
        

DOCUMENTATION

See http://search.cpan.org/dist/Moose/lib/Moose/Cookbook/Meta/Recipe3.pod for documentation on using traits.
And also http://www.dmclaughlin.com/2009/05/15/chained-accessors-in-moose/ for the release post.

About

Chained accessors in Moose


Languages

Language:Perl 100.0%