File Coverage

lib/Test/Stream/Plugin/Explain/Terse.pm
Criterion Covered Total %
statement 30 30 100.0
branch 2 2 100.0
condition n/a
subroutine 10 10 100.0
pod n/a
total 42 42 100.0


line stmt bran cond sub pod time code
1 8     8   1471107 use 5.006; # our
  8         32  
2 8     8   47 use strict;
  8         19  
  8         186  
3 8     8   49 use warnings;
  8         16  
  8         605  
4              
5             package Test::Stream::Plugin::Explain::Terse;
6              
7             our $VERSION = '0.001000';
8              
9             # ABSTRACT: Dump anything in a single line in 80 characters or fewer
10              
11             our $AUTHORITY = 'cpan:KENTNL'; # AUTHORITY
12              
13 8     8   849 use Test::Stream::Exporter qw/ default_exports import /;
  8         3044  
  8         56  
14 8     8   7167 use Data::Dump qw( pp );
  8         48524  
  8         660  
15              
16             default_exports qw/ explain_terse /;
17              
18 8     8   54 no Test::Stream::Exporter;
  8         16  
  8         57  
19              
20              
21              
22              
23              
24              
25              
26              
27              
28              
29 8     8   936 use constant MAX_LENGTH => 80;
  8         17  
  8         604  
30 8     8   52 use constant RIGHT_CHARS => 1;
  8         18  
  8         416  
31 8     8   52 use constant ELIDED => q[...];
  8         15  
  8         1428  
32              
33             sub explain_terse {
34 6     6   4539 my $content = pp( $_[0] ); # note: using this for now because of list compression
35 6         806 $content =~ s/\s*\n\s*/ /sxg; # nuke literal newlines and swallow excess space.
36 6 100       43 return $content if length $content <= MAX_LENGTH;
37              
38 2         13 return ( substr $content, 0, MAX_LENGTH - ( length ELIDED ) - RIGHT_CHARS ) . ELIDED
39             . ( substr $content, ( length $content ) - RIGHT_CHARS );
40              
41             }
42              
43             1;
44              
45             __END__