X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMooseX%2FAttributeHelpers%2FBool.pm;h=502aceda289775d98dd0acf4e510a31033b82ea0;hb=4a0da5ad53122b59937c3ed68260422a74b7e2be;hp=e8910bcc185c69baf9c395af88c4c3fb0b6f2ee1;hpb=823a644185ad12573efd9db3847e1505265d7b18;p=gitmo%2FMooseX-AttributeHelpers.git diff --git a/lib/MooseX/AttributeHelpers/Bool.pm b/lib/MooseX/AttributeHelpers/Bool.pm index e8910bc..502aced 100644 --- a/lib/MooseX/AttributeHelpers/Bool.pm +++ b/lib/MooseX/AttributeHelpers/Bool.pm @@ -1,25 +1,13 @@ package MooseX::AttributeHelpers::Bool; use Moose; -use MooseX::AttributeHelpers::MethodProvider::Bool; -our $VERSION = '0.14'; +our $VERSION = '0.19'; $VERSION = eval $VERSION; our $AUTHORITY = 'cpan:STEVAN'; -extends 'MooseX::AttributeHelpers::Base'; +extends 'Moose::Meta::Attribute'; +with 'MooseX::AttributeHelpers::Trait::Bool'; -sub helper_type { 'Bool' } - -# NOTE: -# we don't use the method provider for this -# module since many of the names of the provied -# methods would conflict with keywords -# - SL - -has '+method_provider' => ( - default => 'MooseX::AttributeHelpers::MethodProvider::Bool' -); - no Moose; # register the alias ... @@ -28,101 +16,3 @@ package # hide me from search.cpan.org sub register_implementation { 'MooseX::AttributeHelpers::Bool' } 1; - -=pod - -=head1 NAME - -MooseX::AttributeHelpers::Bool - -=head1 SYNOPSIS - - package Room; - use Moose; - use MooseX::AttributeHelpers; - - has 'is_lit' => ( - metaclass => 'Bool', - is => 'rw', - isa => 'Bool', - default => sub { 0 }, - provides => { - set => 'illuminate', - unset => 'darken', - toggle => 'flip_switch', - not => 'is_dark' - } - ); - - 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 - -=head1 DESCRIPTION - -This provides a simple boolean attribute, which supports most of the -basic math operations. - -=head1 METHODS - -=over 4 - -=item B - -=item B - -=item B - -=item B - -=item B - -=back - -=head1 PROVIDED METHODS - -It is important to note that all those methods do in place -modification of the value stored in the attribute. - -=over 4 - -=item I - -Sets the value to C<1>. - -=item I - -Set the value to C<0>. - -=item I - -Toggle the value. If it's true, set to false, and vice versa. - -=item I - -Equivalent of 'not C<$value>'. - -=back - -=head1 BUGS - -All complex software has bugs lurking in it, and this module is no -exception. If you find a bug please either email me, or add the bug -to cpan-RT. - -=head1 AUTHOR - -Jason May - -=head1 COPYRIGHT AND LICENSE - -Copyright 2007-2008 by Infinity Interactive, Inc. - -L - -This library is free software; you can redistribute it and/or modify -it under the same terms as Perl itself. - -=cut