File Coverage

blib/lib/MarpaX/ESLIF/URI/_generic/ValueInterface.pm
Criterion Covered Total %
statement 45 46 97.8
branch 1 2 50.0
condition n/a
subroutine 14 16 87.5
pod 0 8 0.0
total 60 72 83.3


line stmt bran cond sub pod time code
1 5     5   33 use strict;
  5         11  
  5         154  
2 5     5   24 use warnings FATAL => 'all';
  5         10  
  5         342  
3             #
4             # This package is built with performance in minde, so this is old-style
5             #
6             package MarpaX::ESLIF::URI::_generic::ValueInterface;
7              
8             our $VERSION = '0.006'; # VERSION
9              
10             our $AUTHORITY = 'cpan:JDDPAUSE'; # AUTHORITY
11              
12             # ABSTRACT: MarpaX::ESLIF's URI Value Interface
13              
14 5     5   32 use Carp qw/croak/;
  5         23  
  5         420  
15 5     5   30 use vars qw/$AUTOLOAD/;
  5         10  
  5         389  
16 5     5   33 use Class::Method::Modifiers qw/fresh/;
  5         10  
  5         1252  
17              
18             #
19             # This class is very internal and should not harm Pod coverage test
20             #
21              
22              
23             sub new {
24 32     32 0 100 my ($class, $action_provider) = @_;
25 32 50       114 croak 'action_provider must be a reference' unless ref($action_provider);
26 32         121 return bless \$action_provider, $class
27             }
28              
29       0     sub DESTROY {
30             }
31              
32             # --------------------------------
33             # Value Interface required methods
34             # --------------------------------
35 32     32 0 107 sub isWithHighRankOnly { 1 } # When there is the rank adverb: highest ranks only ?
36 32     32 0 98 sub isWithOrderByRank { 1 } # When there is the rank adverb: order by rank ?
37 32     32 0 91 sub isWithAmbiguous { 0 } # Allow ambiguous parse ?
38 32     32 0 111 sub isWithNull { 0 } # Allow null parse ?
39 32     32 0 2667 sub maxParses { 0 } # Maximum number of parse tree values - meaningless when !isWithAmbiguous
40       32 0   sub setResult { } # No-op here
41 0     0 0 0 sub getResult { $_[0] } # Result
42              
43             #
44             # Any necessary method is added on-the-fly, and this will croak if it is not provided -;
45             #
46             sub AUTOLOAD {
47 66     66   3847 my $method = $AUTOLOAD;
48 66         396 $method =~ s/.*:://;
49             #
50             # We create it inlined with performance in mind
51             #
52 66     208   5920 fresh $method => eval "sub { my (\$self, \@args) = \@_; return \$\$self->$method(\@args) }"; ## no critic
  208         13640  
  208         948  
  22         1473  
  22         423  
  22         1568  
  22         476  
  361         23587  
  361         1092  
  733         49248  
  733         2037  
  803         53858  
  803         2374  
  20         1195  
  20         316  
  123         7910  
  123         498  
  18         1198  
  18         355  
53 66         4507 goto &$method
54             }
55              
56             1;
57              
58             __END__
59              
60             =pod
61              
62             =encoding UTF-8
63              
64             =head1 NAME
65              
66             MarpaX::ESLIF::URI::_generic::ValueInterface - MarpaX::ESLIF's URI Value Interface
67              
68             =head1 VERSION
69              
70             version 0.006
71              
72             =for Pod::Coverage *EVERYTHING*
73              
74             =head1 AUTHOR
75              
76             Jean-Damien Durand <jeandamiendurand@free.fr>
77              
78             =head1 COPYRIGHT AND LICENSE
79              
80             This software is copyright (c) 2017 by Jean-Damien Durand.
81              
82             This is free software; you can redistribute it and/or modify it under
83             the same terms as the Perl 5 programming language system itself.
84              
85             =cut