summaryrefslogtreecommitdiff
path: root/posts/2009-06-30-private-and-protected-methods-with-moose.org
diff options
context:
space:
mode:
authorFranck Cuny <franck.cuny@gmail.com>2016-08-10 14:33:04 -0700
committerFranck Cuny <franck.cuny@gmail.com>2016-08-10 20:17:56 -0700
commit8d7d02f42c3947f756c18cb4d37d9d97fbd0d27d (patch)
treea6cecddaaea7e87d901a6c28bebe3a531438f24b /posts/2009-06-30-private-and-protected-methods-with-moose.org
parentMerge branch 'convert-to-org' (diff)
downloadlumberjaph-8d7d02f42c3947f756c18cb4d37d9d97fbd0d27d.tar.gz
convert back to md
Diffstat (limited to 'posts/2009-06-30-private-and-protected-methods-with-moose.org')
-rw-r--r--posts/2009-06-30-private-and-protected-methods-with-moose.org51
1 files changed, 0 insertions, 51 deletions
diff --git a/posts/2009-06-30-private-and-protected-methods-with-moose.org b/posts/2009-06-30-private-and-protected-methods-with-moose.org
deleted file mode 100644
index bda5479..0000000
--- a/posts/2009-06-30-private-and-protected-methods-with-moose.org
+++ /dev/null
@@ -1,51 +0,0 @@
-Yesterday, one of our interns asked me a question about private method
-in Moose. I told him that for Moose as for Perl, there is no such things
-as private method. By convention, methods prefixed with '\_' are
-considered private.
-
-But I was curious to see if it would be something complicated to
-implement in Moose. First, I've started to look at how the 'augment'
-keyword is done. I've then hacked Moose directly to add the private
-keyword. After asking advice to nothingmuch, he recommended me that I
-implement this in a MooseX::* module instead. The result is here.
-
-From the synopsis, MooseX::MethodPrivate do:
-
-#+BEGIN_SRC perl
- 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
- }
-#+END_SRC
-
-I was surprised to see how easy it's to extend Moose syntax. All I've
-done was this:
-
-#+BEGIN_SRC perl
- Moose::Exporter->setup_import_methods(
- with_caller => [qw( private protected )],);
-#+END_SRC
-
-and write the =private= and =protected= sub. I'm sure there is some
-stuff I can do to improve this, but for a first test, I'm happy with the
-result and still amazed how easy it was to add this two keywords.