diff options
author | franck cuny <franck@lumberjaph.net> | 2009-06-30 14:49:35 +0200 |
---|---|---|
committer | franck cuny <franck@lumberjaph.net> | 2009-06-30 14:49:35 +0200 |
commit | f82058cbb60dcc8e4b4cae7aeaf22dd973d32560 (patch) | |
tree | 0639b26a89fdcb4bed0dfa5cf3bf878531ef9bdc /lib/MooseX/MethodPrivate.pm | |
parent | private and protectd methods and basic tests (diff) | |
download | moosex-methodprivate-f82058cbb60dcc8e4b4cae7aeaf22dd973d32560.tar.gz |
update POD and makefile
Diffstat (limited to '')
-rw-r--r-- | lib/MooseX/MethodPrivate.pm | 60 |
1 files changed, 54 insertions, 6 deletions
diff --git a/lib/MooseX/MethodPrivate.pm b/lib/MooseX/MethodPrivate.pm index 37cce7a..7959adc 100644 --- a/lib/MooseX/MethodPrivate.pm +++ b/lib/MooseX/MethodPrivate.pm @@ -2,9 +2,10 @@ package MooseX::MethodPrivate; use Moose; use Moose::Exporter; -our $VERSION = '0.1.0'; use Carp qw/croak/; +our $VERSION = '0.1.0'; + Moose::Exporter->setup_import_methods( with_caller => [qw( private protected )], ); @@ -47,15 +48,59 @@ __END__ =head1 NAME -MooseX::MethodPrivate - +MooseX::MethodPrivate - Declare methods private or protected =head1 SYNOPSIS - use MooseX::MethodPrivate; + package Foo; + use MooseX::MethodPrivate; + + private 'foo' => sub { + ... + } + + protected 'bar' => sub { + ... + } + + ... + + my $foo = Foo->new; + $foo->foo; # die, can't call foo because it's a private method + $foo->bar; # die, can't call bar because it's a protected method + + package Bar; + use MooseX::MethodPrivate; + extends qw/Foo/; + + sub baz { + my $self = shift; + $self->foo; # die, can't call foo because it's a private method + $self->bar; # ok, can call this method because we extends Foo and + # it's a protected method + } =head1 DESCRIPTION -MooseX::MethodPrivate is +MooseX::MethodPrivate add two new keyword for methods declaration: + +=over 2 + +=item B<private> + +=item B<protected> + +=back + +=head2 METHODS + +=item B<private> + +A private method is visible only in the class. + +=item B<protected> + +A protected method is visible in the class and any subclasses. =head1 AUTHOR @@ -65,5 +110,8 @@ franck cuny E<lt>franck.cuny {at} rtgi.frE<gt> =head1 LICENSE -This library is free software; you can redistribute it and/or modify -it under the same terms as Perl itself. +Copyright (c) 2009, RTGI +All rights reserved. + +This module is free software; you can redistribute it and/or +modify it under the same terms as Perl itself. See L<perlartistic>. |