summary refs log tree commit diff
path: root/lib/MooseX/Privacy/Meta/Class/Private.pm
diff options
context:
space:
mode:
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>