/usr/share/perl5/MouseX/NativeTraits/MethodProvider/Bool.pm is in libmousex-nativetraits-perl 1.07-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | package MouseX::NativeTraits::MethodProvider::Bool;
use Mouse;
extends qw(MouseX::NativeTraits::MethodProvider);
sub generate_set {
my($self) = @_;
my $writer = $self->writer;
return sub {
if(@_ != 1) {
$self->argument_error('set', 1, 1, scalar @_);
}
$writer->( $_[0], 1 );
};
}
sub generate_unset {
my($self) = @_;
my $writer = $self->writer;
return sub {
if(@_ != 1) {
$self->argument_error('unset', 1, 1, scalar @_);
}
$writer->( $_[0], 0 );
};
}
sub generate_toggle {
my($self) = @_;
my $reader = $self->reader;
my $writer = $self->writer;
return sub {
if(@_ != 1) {
$self->argument_error('toggle', 1, 1, scalar @_);
}
$writer->( $_[0], !$reader->( $_[0] ) );
};
}
sub generate_not {
my($self) = @_;
my $reader = $self->reader;
return sub {
if(@_ != 1) {
$self->argument_error('not', 1, 1, scalar @_);
}
!$reader->( $_[0] );
};
}
no Mouse;
__PACKAGE__->meta->make_immutable();
__END__
=head1 NAME
MouseX::NativeTraits::MethodProvider::Bool - Provides methods for Bool
=head1 DESCRIPTION
This class provides method generators for the C<Bool> trait.
See L<Mouse::Meta::Attribute::Custom::Trait::Bool> for details.
=head1 METHOD GENERATORS
=over 4
=item generate_set
=item generate_unset
=item generate_toggle
=item generate_not
=back
=head1 SEE ALSO
L<MouseX::NativeTraits>
=cut
|