# NAME

MooX::ChainedAttributes - Make your attributes chainable.

# SYNOPSIS

```perl
package Foo;
use Moo;
use MooX::ChainedAttributes;

has name => (
    is      => 'rw',
    chained => 1,
);

has age => (
    is => 'rw',
);

chain('age');

sub who {
    my ($self) = @_;
    print "My name is " . $self->name() . "!\n";
}

my $foo = Foo->new();
$foo->name('Fred')->who(); # My name is Fred!
```

# DESCRIPTION

This module exists for your method chaining enjoyment.  It
was originally developed in order to support the porting of
[MooseX::Attribute::Chained](https://metacpan.org/pod/MooseX%3A%3AAttribute%3A%3AChained) using classes to [Moo](https://metacpan.org/pod/Moo).

In [Moose](https://metacpan.org/pod/Moose) you would write:

```perl
package Bar;
use Moose;
use MooseX::Attribute::Chained;
has baz => ( is=>'rw', traits=>['Chained'] );
```

To port the above to [Moo](https://metacpan.org/pod/Moo) just change it to:

```perl
package Bar;
use Moo;
use MooX::ChainedAttributes;
has baz => ( is=>'rw', chained=>1 );
```

# AUTHOR

```
Aran Clary Deltac <bluefeet@gmail.com>
```

# CONTRIBUTORS

```
Graham Knop <haarg@haarg.org>
```

# LICENSE

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.