File Coverage

blib/lib/Acme/Resume.pm
Criterion Covered Total %
statement 25 25 100.0
branch n/a
condition 2 4 50.0
subroutine 7 7 100.0
pod n/a
total 34 36 94.4


line stmt bran cond sub pod time code
1             package Acme::Resume;
2              
3             # ABSTRACT: Write a human-readable resume in Perl
4             our $AUTHORITY = 'cpan:CSSON'; # AUTHORITY
5             our $VERSION = '0.0104';
6              
7 1     1   70811 use strict;
  1         8  
  1         30  
8 1     1   5 use warnings;
  1         2  
  1         26  
9              
10 1     1   5 use base 'MoopsX::UsingMoose';
  1         2  
  1         492  
11 1     1   49858 use Acme::Resume::Moose();
  1         3  
  1         42  
12 1     1   580 use Time::Moment;
  1         1861  
  1         33  
13 1     1   488 use syntax();
  1         1750  
  1         130  
14              
15             sub import {
16 2     2   3222 my $class = shift;
17 2         7 my %opts = @_;
18              
19 2   50     3 push @{ $opts{'imports'} ||= [] } => (
  2         20  
20             'syntax' => ['qs'],
21             'Acme::Resume::Moose' => [],
22             );
23              
24 2   50     4 push @{ $opts{'traits'} ||= [] } => (
  2         12  
25             'Acme::Resume::MoopsParserTrait',
26             );
27              
28 2         19 $class->SUPER::import(%opts);
29             }
30              
31             1;
32              
33             __END__
34              
35             =pod
36              
37             =encoding UTF-8
38              
39             =head1 NAME
40              
41             Acme::Resume - Write a human-readable resume in Perl
42              
43              
44              
45             =begin html
46              
47             <p>
48             <img src="https://img.shields.io/badge/perl-5.14+-blue.svg" alt="Requires Perl 5.14+" />
49             <img src="https://img.shields.io/badge/coverage-86.3%25-orange.svg" alt="coverage 86.3%" />
50             <a href="https://github.com/Csson/p5-Acme-Resume/actions?query=workflow%3Amakefile-test"><img src="https://img.shields.io/github/workflow/status/Csson/p5-Acme-Resume/makefile-test" alt="Build status at Github" /></a>
51             </p>
52              
53             =end html
54              
55             =head1 VERSION
56              
57             Version 0.0104, released 2021-08-31.
58              
59             =head1 SYNOPSIS
60              
61             use Acme::Resume;
62              
63             resume ExAmple {
64              
65             name 'Ex Ample';
66              
67             email 'ex@example.com';
68              
69             address ['Suburbia lane 1200', 'Townsville', 'USA'];
70              
71             phone '+1 (555) 123 4321';
72              
73             education { ... }
74              
75             education { ... }
76              
77             job { ... }
78              
79             job { ... }
80             }
81              
82             1;
83              
84             =head1 DESCRIPTION
85              
86             Acme::Resume is a framework for writing human-readable, computer-executable, object-oriented résumés in Perl.
87              
88             C<Acme::Resume> is a wrapper around L<Moops> that imports L<Acme::Resume::Moose>, which adds all the methods. It also adds
89             the L<Acme::Resume::MoopsParserTrait> which includes the C<resume> keyword (just an alias for a standard Moops C<class>) and
90             adds special handling of the package name:
91              
92             If the package doesn't contain C<::>, as in the synopsis, the package name will have C<Acme::Resume::For::> automatically prepended.
93              
94             =head1 METHODS
95              
96             =head2 name
97              
98             Your full name.
99              
100             =head2 email
101              
102             Your email address.
103              
104             =head2 phone
105              
106             Your phone number.
107              
108             =head2 address
109              
110             An array reference of address parts.
111              
112             =head2 education
113              
114             Can be used multiple times. Adds an L<Acme::Resume::Types::Education> to the list of educations.
115              
116             =head2 job
117              
118             Can be used multiple times. Adds a L<Acme::Resume::Types::Job> to the list of jobs.
119              
120             =head1 USAGE
121              
122             One way to read a résumé (apart from reading the source) is with one-liners:
123              
124             $ perl -MAcme::Resume::For::ExAmple -E 'say Acme::Resume::For::ExAmple->new->get_job(-1)->started->year'
125              
126             The L<Acme::Resume::Output::ToPlain> role (used by default) adds a C<to_plain> method:
127              
128             $ perl -MAcme::Resume::For::Tester -E 'say Acme::Resume::For::Tester->new->to_plain'
129              
130             =head1 TODO
131              
132             More documentation and a complete example.
133              
134             =head1 SOURCE
135              
136             L<https://github.com/Csson/p5-Acme-Resume>
137              
138             =head1 HOMEPAGE
139              
140             L<https://metacpan.org/release/Acme-Resume>
141              
142             =head1 AUTHOR
143              
144             Erik Carlsson <info@code301.com>
145              
146             =head1 COPYRIGHT AND LICENSE
147              
148             This software is copyright (c) 2021 by Erik Carlsson.
149              
150             This is free software; you can redistribute it and/or modify it under
151             the same terms as the Perl 5 programming language system itself.
152              
153             =cut