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   38 use strict;
  5         14  
  5         169  
2 5     5   29 use warnings FATAL => 'all';
  5         11  
  5         393  
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.007'; # VERSION
9              
10             our $AUTHORITY = 'cpan:JDDPAUSE'; # AUTHORITY
11              
12             # ABSTRACT: MarpaX::ESLIF's URI Value Interface
13              
14 5     5   37 use Carp qw/croak/;
  5         37  
  5         404  
15 5     5   38 use vars qw/$AUTOLOAD/;
  5         11  
  5         443  
16 5     5   41 use Class::Method::Modifiers qw/fresh/;
  5         11  
  5         1449  
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 104 my ($class, $action_provider) = @_;
25 32 50       125 croak 'action_provider must be a reference' unless ref($action_provider);
26 32         139 return bless \$action_provider, $class
27             }
28              
29       0     sub DESTROY {
30             }
31              
32             # --------------------------------
33             # Value Interface required methods
34             # --------------------------------
35 32     32 0 119 sub isWithHighRankOnly { 1 } # When there is the rank adverb: highest ranks only ?
36 32     32 0 119 sub isWithOrderByRank { 1 } # When there is the rank adverb: order by rank ?
37 32     32 0 93 sub isWithAmbiguous { 0 } # Allow ambiguous parse ?
38 32     32 0 101 sub isWithNull { 0 } # Allow null parse ?
39 32     32 0 2337 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   4601 my $method = $AUTOLOAD;
48 66         425 $method =~ s/.*:://;
49             #
50             # We create it inlined with performance in mind
51             #
52 66     236   6519 fresh $method => eval "sub { my (\$self, \@args) = \@_; return \$\$self->$method(\@args) }"; ## no critic
  236         19146  
  236         1088  
  394         32027  
  394         1501  
  426         34892  
  426         1882  
  426         34938  
  426         1522  
  29         2301  
  29         645  
  13         695  
  13         150  
  186         14413  
  186         945  
  473         39895  
  473         1910  
  132         12442  
  132         781  
53 66         5391 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.007
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