File Coverage

blib/lib/Repl/Core/CommandRepo.pm
Criterion Covered Total %
statement 21 22 95.4
branch 1 2 50.0
condition 2 6 33.3
subroutine 7 7 100.0
pod 0 4 0.0
total 31 41 75.6


line stmt bran cond sub pod time code
1             package Repl::Core::CommandRepo;
2            
3             # Pragma's.
4 1     1   3 use strict;
  1         1  
  1         27  
5 1     1   4 use warnings;
  1         2  
  1         20  
6            
7             # Uses.
8 1     1   4 use Carp;
  1         2  
  1         223  
9            
10             sub new
11             {
12 1     1 0 2 my $invocant = shift;
13 1   33     6 my $class = ref($invocant) || $invocant;
14             # Initialize the token instance.
15 1         2 my $self = {};
16 1         2 $self->{REPO} = {};
17 1         4 return bless($self, $class);
18             }
19            
20             sub registerCommand
21             {
22 12     12 0 16 my ($self, $name, $command) = @_;
23 12 50 33     55 if(!$command || !($command->can("execute")))
24             {
25 0         0 confess "A command needs to have an execute method.";
26             }
27 12         40 $self->{REPO}->{$name} = $command;
28             }
29            
30             sub hasCommand
31             {
32 75     75 0 103 my ($self, $name) = @_;
33 75         313 return exists $self->{REPO}->{$name};
34             }
35            
36             sub getCommand
37             {
38 51     51 0 70 my ($self, $name) = @_;
39 51         146 return $self->{REPO}->{$name};
40             }
41            
42             1;