NAME

MooseX::Meta::Attribute::Lvalue - Immplements lvalue accessors via meta-attribute trait

VERSION

Version 0.03

SYNOPSIS

package App;
    use Moose;
    with 'MooseX::Meta::Attribute::Lvalue';

    has 'name' => (
        is          => 'rw' ,
        isa         => 'Str' ,
        required    => 1 ,
        traits => [ 'Lvalue' ] ,   # DO NOT FORGET THIS
        lvalue      => 1 
    );


package main;
    my $app = App->new( name => 'Foo' );

    $app->name = "Bar";      
    print $app->name;       # Bar

DESCRIPTION

This package provides a Moose meta attribute via a role/trait that provides Lvalue accessors to your Moose attributes when the Lvalue is true.

Moose does not support lvalue accessors due to existing limitations in the lvalue implementation. Specifically, the lvalue accessors break certain encapsulations. However with many simple classes, you often don't care and would rather use the Lvalue syntax. This module provides that functionality.

While the how/when the lvalue accessor gets built might change, the API will not likely change.

METHODS

_install_lvalue_writer

This method installs lvalue writers for those attributes that are: 1) rw 2) the attribute has a true lvalue 3) the attribute does MooseX::Meta::Attribute::Trait::Lvalue

BUILD

This is just a dummy subroutine so that we can apply after, before methods

EXPORT

None by default.

AUTHOR

Christopher Brown, <cbrown at opendatagroup.com>

BUGS

Please report any bugs or feature requests to bug-moosex-attribute-lvalue at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=MooseX-Attribute-Lvalue. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc MooseX::Attribute::Lvalue

You can also look for information at:

ACKNOWLEDGEMENTS

COPYRIGHT & LICENSE

Copyright 2008 Christopher Brown, all rights reserved.

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