| Moose documentation | Contained in the Moose distribution. |
Moose::Meta::Attribute::Native::Trait::Bool - Helper trait for Bool attributes
package Room;
use Moose;
has 'is_lit' => (
traits => ['Bool'],
is => 'rw',
isa => 'Bool',
default => 0,
handles => {
illuminate => 'set',
darken => 'unset',
flip_switch => 'toggle',
is_dark => 'not',
},
);
my $room = Room->new();
$room->illuminate; # same as $room->is_lit(1);
$room->darken; # same as $room->is_lit(0);
$room->flip_switch; # same as $room->is_lit(not $room->is_lit);
return $room->is_dark; # same as !$room->is_lit
This provides a simple boolean attribute, which supports most of the basic math operations.
These methods are implemented in Moose::Meta::Attribute::Native::MethodProvider::Bool. It is important to note that all those methods do in place modification of the value stored in the attribute.
Sets the value to 1.
Set the value to 0.
Toggles the value. If it's true, set to false, and vice versa.
Equivalent of 'not $value'.
See BUGS in Moose for details on reporting bugs.
Jason May
Copyright 2007-2009 by Infinity Interactive, Inc.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| Moose documentation | Contained in the Moose distribution. |
package Moose::Meta::Attribute::Native::Trait::Bool; use Moose::Role; use Moose::Meta::Attribute::Native::MethodProvider::Bool; our $VERSION = '0.99'; $VERSION = eval $VERSION; our $AUTHORITY = 'cpan:STEVAN'; with 'Moose::Meta::Attribute::Native::Trait'; sub _default_is { 'rw' } sub _helper_type { 'Bool' } has 'method_provider' => ( is => 'ro', isa => 'ClassName', predicate => 'has_method_provider', default => 'Moose::Meta::Attribute::Native::MethodProvider::Bool' ); no Moose::Role; 1;