From 5098904f4f641567cb37b2a08d486236b38af775 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Mon, 30 Mar 2015 00:12:37 -0400 Subject: restrict which methods are considered commands --- lib/WWW/Pocket/Script.pm | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/lib/WWW/Pocket/Script.pm b/lib/WWW/Pocket/Script.pm index ddf7291..5238931 100644 --- a/lib/WWW/Pocket/Script.pm +++ b/lib/WWW/Pocket/Script.pm @@ -50,7 +50,7 @@ sub run { my @argv = @_; my $method = shift @argv; - if ($self->can($method)) { + if ($self->_method_is_command($method)) { return $self->$method(@argv); } else { @@ -58,6 +58,19 @@ sub run { } } +sub _method_is_command { + my $self = shift; + my ($name) = @_; + + return if $name eq 'run' || $name eq 'meta'; + return if $name =~ /^_/; + my $method = $self->meta->find_method_by_name($name); + return unless $method; + return if $method->isa('Class::MOP::Method::Accessor'); + + return 1; +} + sub authenticate { my $self = shift; $self->pocket; -- cgit v1.2.3