File Coverage

blib/lib/Data/Sah/Filter/perl/Str/ensure_trailing_newline.pm
Criterion Covered Total %
statement 8 14 57.1
branch n/a
condition n/a
subroutine 3 5 60.0
pod 0 2 0.0
total 11 21 52.3


line stmt bran cond sub pod time code
1             package Data::Sah::Filter::perl::Str::ensure_trailing_newline;
2              
3 1     1   446080 use 5.010001;
  1         5  
4 1     1   7 use strict;
  1         2  
  1         40  
5 1     1   6 use warnings;
  1         2  
  1         354  
6              
7             our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
8             our $DATE = '2024-07-17'; # DATE
9             our $DIST = 'Data-Sah-Filter'; # DIST
10             our $VERSION = '0.025'; # VERSION
11              
12             sub meta {
13             +{
14 0     0 0   v => 1,
15             summary => 'Make sure string (except an empty one) ends with newline, add newline if the string does not',
16             examples => [
17             {value=>''},
18             {value=>' ', filtered_value=>" \n"},
19             {value=>'foo', filtered_value=>"foo\n"},
20             {value=>'foo ', filtered_value=>"foo \n"},
21             {value=>"foo\n"},
22             {value=>"foo\n\n"},
23             {value=>"foo\n ", filtered_value=>"foo\n \n"},
24             ],
25             };
26             }
27              
28             sub filter {
29 0     0 0   my %args = @_;
30              
31 0           my $dt = $args{data_term};
32              
33 0           my $res = {};
34 0           $res->{expr_filter} = join(
35             "",
36             "do { my \$res = $dt; \$res .= \"\\n\" unless \$res eq '' || \$res =~ /\\R\\z/; \$res }",
37             );
38              
39 0           $res;
40             }
41              
42             1;
43             # ABSTRACT: Make sure string (except an empty one) ends with newline, add newline if the string does not
44              
45             __END__