File Coverage

blib/lib/perl5i/2/Signature/Real.pm
Criterion Covered Total %
statement 36 42 85.7
branch 4 4 100.0
condition 1 2 50.0
subroutine 17 20 85.0
pod 0 1 0.0
total 58 69 84.0


line stmt bran cond sub pod time code
1             package perl5i::2::Signature::Real;
2 2     2   12 use perl5i::2;
  2         5  
  2         24  
3              
4             use overload
5 10     10   1621 q[""] => sub { return $_[0]->as_string },
6 2         26 fallback => 1
7 2     2   17109 ;
  2         6  
8              
9 2     2   582 method new($class: %args) {
  0     0   0  
  0         0  
10 0         0 bless \%args, $class;
11             }
12              
13 0     0 0 0 sub make_real () {}
14              
15 2     2   453 method __parse_signature {
  11     11   28  
16 11         263 my $string = $self->{signature}->trim;
17            
18 11 100       78 if( $string =~ s{^ (\$\w+) : \s*}{}x ) {
    100          
19 1   50     8 $self->{invocant} = $1 // '';
20             }
21             elsif( $self->is_method ) {
22 2         8 $self->{invocant} = '$self';
23             }
24             else {
25 8         29 $self->{invocant} = '';
26             }
27              
28 11         116 my @args = split /\s*,\s*/, $string;
29              
30 11         32 $self->{params} = \@args;
31 11         31 $self->{positional_params} = \@args;
32 11         30 $self->{num_positional_params} = @args;
33              
34 11         36 return;
35             }
36              
37 2     2   447 method num_positional_params() {
  12     12   24  
38 12         86 return $self->{num_positional_params};
39             }
40              
41 2     2   426 method positional_params() {
  0     0   0  
42 0         0 return $self->{positional_params};
43             }
44              
45 2     2   12623 method params() {
  5     5   12  
46 5         51 return $self->{params};
47             }
48              
49 2     2   546 method as_string() {
  10     10   23  
50 10         113 return $self->{signature};
51             }
52              
53 2     2   484 method invocant() {
  6     6   15  
54 6         46 return $self->{invocant};
55             }
56              
57 2     2   550 method is_method() {
  16     16   39  
58 16         87 return $self->{is_method};
59             }
60              
61             1;