File Coverage

blib/lib/Mail/STS/SSKV.pm
Criterion Covered Total %
statement 12 12 100.0
branch n/a
condition n/a
subroutine 3 3 100.0
pod 0 2 0.0
total 15 17 88.2


line stmt bran cond sub pod time code
1             package Mail::STS::SSKV;
2              
3 3     3   3590 use Moose::Role;
  3         16488  
  3         15  
4              
5             our $VERSION = '0.04'; # VERSION
6             # ABSTRACT: role for semicolon-separated key/value pairs
7              
8             requires 'fields';
9              
10             sub new_from_string {
11 4     4 0 436 my ($class, $string) = @_;
12 4         32 my %kv = map { split(/=/,$_,2) } split(/\s*;\s*/, $string);
  8         33  
13 4         173 return $class->new(%kv);
14             }
15              
16             sub as_string {
17 4     4 0 2357 my $self = shift;
18             return join(' ',
19 4         8 map { $_."=".$self->$_.";" } grep { defined $self->$_ } @{$self->fields}
  8         246  
  8         233  
  4         213  
20             );
21             }
22              
23             1;
24              
25             __END__
26              
27             =pod
28              
29             =encoding UTF-8
30              
31             =head1 NAME
32              
33             Mail::STS::SSKV - role for semicolon-separated key/value pairs
34              
35             =head1 VERSION
36              
37             version 0.04
38              
39             =head1 AUTHOR
40              
41             Markus Benning <ich@markusbenning.de>
42              
43             =head1 COPYRIGHT AND LICENSE
44              
45             This software is copyright (c) 2018 by Markus Benning <ich@markusbenning.de>.
46              
47             This is free software; you can redistribute it and/or modify it under
48             the same terms as the Perl 5 programming language system itself.
49              
50             =cut