X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMooseX%2FAttributeHelpers%2FBool.pm;h=3d5f05d9c2cbfe0a0f0ea69231e1752593076809;hb=fda444e70db8fa4a13c1a24dda315b506d45b839;hp=c4ee3b3cfbe51f30993088b0d3ea8398b7ee6360;hpb=38430345c58bfae41b4cc7c1036c5dc8df401972;p=gitmo%2FMooseX-AttributeHelpers.git diff --git a/lib/MooseX/AttributeHelpers/Bool.pm b/lib/MooseX/AttributeHelpers/Bool.pm index c4ee3b3..3d5f05d 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.12_01'; +our $VERSION = '0.20'; $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 ... @@ -29,96 +17,49 @@ sub register_implementation { 'MooseX::AttributeHelpers::Bool' } 1; +__END__ + =pod =head1 NAME MooseX::AttributeHelpers::Bool -=head1 SYNOPSIS - - package Room; - use Moose; - use MooseX::AttributeHelpers; - - has 'is_lit' => ( - metaclass => 'Bool', - is => 'rw', - isa => 'Int', - 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 +=item B -Set the value to C<0>. +=item B -=item I +=item B -Toggle the value. If it's true, set to false, and vice versa. +Run before its superclass method. -=item I +=item B -Equivalent of 'not C<$value>'. +Run after its superclass method. =back =head1 BUGS -All complex software has bugs lurking in it, and this module is no +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 +Stevan Little Estevan@iinteractive.comE =head1 COPYRIGHT AND LICENSE -Copyright 2007-2008 by Infinity Interactive, Inc. +Copyright 2007-2009 by Infinity Interactive, Inc. L @@ -126,3 +67,4 @@ This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut +