X-Git-Url: https://ruin.nu/git/?a=blobdiff_plain;f=Command.pm;fp=Command.pm;h=e38ba131f5211f6c3712163b5195029d9fadcb79;hb=4f1948e0fe10075464732db5cc2168207c00c7aa;hp=0000000000000000000000000000000000000000;hpb=02cffbdd44754378b27e1b87a1998368c1098973;p=NDIRC.git diff --git a/Command.pm b/Command.pm new file mode 100644 index 0000000..e38ba13 --- /dev/null +++ b/Command.pm @@ -0,0 +1,61 @@ +#************************************************************************** +# Copyright (C) 2009 by Michael Andreen * +# * +# This program is free software; you can redistribute it and/or modify * +# it under the terms of the GNU General Public License as published by * +# the Free Software Foundation; either version 2 of the License, or * +# (at your option) any later version. * +# * +# This program is distributed in the hope that it will be useful, * +# but WITHOUT ANY WARRANTY; without even the implied warranty of * +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +# GNU General Public License for more details. * +# * +# You should have received a copy of the GNU General Public License * +# along with this program; if not, write to the * +# Free Software Foundation, Inc., * +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * +#**************************************************************************/ + +package NDIRC::Command; +use strict; +use warnings; + +use Moose; + +has acl => ( + is => 'ro', + isa => 'ArrayRef[Str]', + predicate => 'has_acl', +); + +has type => ( + is => 'ro', + isa => 'ArrayRef[Str]', + default => sub { ['pub'] }, +); + +has help => ( + is => 'ro', + isa => 'ArrayRef[Str]', + default => sub{ ['No help for this command'] }, +); + +has name => ( + is => 'ro', + isa => 'Str', + default => 'No help for this command', +); + +has func => ( + is => 'ro', + isa => 'CodeRef', + required => 1, +); + +sub execute { + my ($self,$c,$args) = @_; + $self->func->(@_); +} + +1;