File Coverage

blib/lib/Data/Sah/Filter/perl/Str/wrap.pm
Criterion Covered Total %
statement 8 16 50.0
branch n/a
condition 0 6 0.0
subroutine 3 5 60.0
pod 0 2 0.0
total 11 29 37.9


line stmt bran cond sub pod time code
1             package Data::Sah::Filter::perl::Str::wrap;
2              
3 1     1   398381 use 5.010001;
  1         5  
4 1     1   5 use strict;
  1         2  
  1         33  
5 1     1   5 use warnings;
  1         1  
  1         356  
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 => 'Wrap text',
16             args => {
17             columns => {
18             schema => 'uint*',
19             default => 72,
20             },
21             },
22             examples => [
23             {value=>"foo"},
24             {value=>"foo foo foo foo"},
25             {value=>"foo foo foo foo", filter_args=>{columns=>4}, filtered_value=>"foo\nfoo\nfoo\nfoo"},
26             ],
27             };
28             }
29              
30             sub filter {
31 0     0 0   my %fargs = @_;
32              
33 0           my $dt = $fargs{data_term};
34 0   0       my $gen_args = $fargs{args} // {};
35              
36 0           my $res = {};
37 0   0       $res->{modules}{"Text::Wrap"} //= 0;
38              
39             $res->{expr_filter} = join(
40             "",
41             "do { ", (
42 0   0       "local \$Text::Wrap::columns = ", (($gen_args->{columns} // 72)+0), "; ",
43             "Text::Wrap::wrap('', '', $dt); ",
44             ), "}",
45             );
46              
47 0           $res;
48             }
49              
50             1;
51             # ABSTRACT: Wrap text
52              
53             __END__