File Coverage

blib/lib/Acme/Resume/MoopsParserTrait.pm
Criterion Covered Total %
statement 12 12 100.0
branch n/a
condition n/a
subroutine 4 4 100.0
pod n/a
total 16 16 100.0


line stmt bran cond sub pod time code
1 1     1   2336 use strict;
  1         2  
  1         39  
2 1     1   24 use warnings;
  1         3  
  1         63  
3              
4             package Acme::Resume::MoopsParserTrait;
5              
6             # ABSTRACT: Trait for the Moops parser
7             our $VERSION = '0.0106';
8              
9 1     1   7 use Moo::Role;
  1         1  
  1         9  
10 1     1   2741 use Module::Runtime qw($module_name_rx);
  1         2  
  1         8  
11              
12             around _eat_package => sub {
13             my $next = shift;
14             my $self = shift;
15             my ($rel) = @_;
16              
17             my $pkg = $self->_eat(qr{(?:::)?$module_name_rx});
18              
19             if($pkg !~ m{::}) {
20             $pkg = 'Acme::Resume::For::' . $pkg;
21             }
22              
23             return $self->qualify_module_name($pkg, $rel);
24              
25             };
26              
27             after parse => sub {
28             my $self = shift;
29              
30             if($self->keyword eq 'resume') {
31             push @{ $self->relations->{'with'} ||= [] } => (
32             'Acme::Resume::Output::ToPlain',
33             );
34             }
35             };
36              
37             around keywords => sub {
38             my $next = shift;
39             my $self = shift;
40              
41             my @all = ('resume', $self->$next(@_));
42             return @all;
43             };
44              
45             around class_for_keyword => sub {
46             my $next = shift;
47             my $self = shift;
48              
49             if($self->keyword eq 'resume') {
50             require Moops::Keyword::Class;
51             return 'Moops::Keyword::Class';
52             }
53              
54             return $self->$next(@_);
55             };
56              
57             1;
58              
59             __END__
60              
61             =pod
62              
63             =encoding UTF-8
64              
65             =head1 NAME
66              
67             Acme::Resume::MoopsParserTrait - Trait for the Moops parser
68              
69             =head1 VERSION
70              
71             Version 0.0106, released 2021-10-31.
72              
73             =head1 SOURCE
74              
75             L<https://github.com/Csson/p5-Acme-Resume>
76              
77             =head1 HOMEPAGE
78              
79             L<https://metacpan.org/release/Acme-Resume>
80              
81             =head1 AUTHOR
82              
83             Erik Carlsson <info@code301.com>
84              
85             =head1 COPYRIGHT AND LICENSE
86              
87             This software is copyright (c) 2021 by Erik Carlsson.
88              
89             This is free software; you can redistribute it and/or modify it under
90             the same terms as the Perl 5 programming language system itself.
91              
92             =cut