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   10 use perl5i::2;
  2         3  
  2         14  
3              
4             use overload
5 10     10   620 q[""] => sub { return $_[0]->as_string },
6 2         21 fallback => 1
7 2     2   8265 ;
  2         4  
8              
9 2     2   377 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   302 method __parse_signature {
  11     11   11  
16 11         133 my $string = $self->{signature}->trim;
17            
18 11 100       37 if( $string =~ s{^ (\$\w+) : \s*}{}x ) {
    100          
19 1   50     6 $self->{invocant} = $1 // '';
20             }
21             elsif( $self->is_method ) {
22 2         3 $self->{invocant} = '$self';
23             }
24             else {
25 8         16 $self->{invocant} = '';
26             }
27              
28 11         41 my @args = split /\s*,\s*/, $string;
29              
30 11         24 $self->{params} = \@args;
31 11         11 $self->{positional_params} = \@args;
32 11         18 $self->{num_positional_params} = @args;
33              
34 11         25 return;
35             }
36              
37 2     2   300 method num_positional_params() {
  12     12   14  
38 12         43 return $self->{num_positional_params};
39             }
40              
41 2     2   248 method positional_params() {
  0     0   0  
42 0         0 return $self->{positional_params};
43             }
44              
45 2     2   246 method params() {
  5     5   8  
46 5         46 return $self->{params};
47             }
48              
49 2     2   247 method as_string() {
  10     10   13  
50 10         80 return $self->{signature};
51             }
52              
53 2     2   255 method invocant() {
  6     6   9  
54 6         24 return $self->{invocant};
55             }
56              
57 2     2   293 method is_method() {
  16     16   20  
58 16         54 return $self->{is_method};
59             }
60              
61             1;