summaryrefslogtreecommitdiff
path: root/lib/MooseX/Privacy/Meta/Class/Private.pm
diff options
context:
space:
mode:
authorfranck cuny <franck@lumberjaph.net>2010-03-04 06:17:41 +0100
committerfranck cuny <franck@lumberjaph.net>2010-03-04 06:17:41 +0100
commit8e8a77e9f408b930308a357fcdad5137cb9b05b5 (patch)
treef694a1fad9a61d119847b0f95e9699e56fb9aa68 /lib/MooseX/Privacy/Meta/Class/Private.pm
parentadd traits registration (diff)
downloadmoosex-privacy-8e8a77e9f408b930308a357fcdad5137cb9b05b5.tar.gz
more POD
Diffstat (limited to 'lib/MooseX/Privacy/Meta/Class/Private.pm')
-rw-r--r--lib/MooseX/Privacy/Meta/Class/Private.pm29
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/MooseX/Privacy/Meta/Class/Private.pm b/lib/MooseX/Privacy/Meta/Class/Private.pm
index d63757c..c0907fa 100644
--- a/lib/MooseX/Privacy/Meta/Class/Private.pm
+++ b/lib/MooseX/Privacy/Meta/Class/Private.pm
@@ -16,6 +16,16 @@ has local_private_methods => (
handles => { '_push_private_method' => 'push' },
);
+has local_private_attributes => (
+ traits => ['Array'],
+ is => 'ro',
+ isa => ArrayRef [Str],
+ required => 1,
+ default => sub { [] },
+ auto_deref => 1,
+ handles => { '_push_private_attribute' => 'push' },
+);
+
sub add_private_method {
my ( $self, $method_name, $method ) = @_;
@@ -36,6 +46,7 @@ sub add_private_method {
}
1;
+
__END__
=head1 NAME
@@ -46,10 +57,28 @@ MooseX::Privacy::Meta::Class::Private
=head1 METHODS
+=head2 local_private_attributes
+
+Arrayref of all private attributes
+
+ my $private_attributes = $self->meta->local_private_attributes;
+
=head2 local_private_methods
+Arrayref of all private methods
+
+ my $private_methods = $self->meta->local_private_methods;
+
=head2 add_private_method
+Add a private method to your object.
+
+ $object->meta->add_private_method('foo', sub { return 23 });
+
+or
+
+ $object->meta->add_private_method('foo', MooseX::Privacy::Meta::Method::Private->wrap(name => 'foo', package_name => 'Foo', body => sub {return 23});
+
=head1 AUTHOR
franck cuny E<lt>franck@lumberjaph.netE<gt>