File Coverage

blib/lib/Data/Unixish/_pad.pm
Criterion Covered Total %
statement 40 44 90.9
branch 4 8 50.0
condition 5 5 100.0
subroutine 12 12 100.0
pod n/a
total 61 69 88.4


line stmt bran cond sub pod time code
1             package Data::Unixish::_pad;
2              
3             our $DATE = '2019-01-06'; # DATE
4             our $VERSION = '1.570'; # VERSION
5              
6 9     9   142 use 5.010;
  9         29  
7 9     9   47 use locale;
  9         18  
  9         39  
8 9     9   246 use strict;
  9         14  
  9         179  
9 9     9   34 use syntax 'each_on_array'; # to support perl < 5.12
  9         16  
  9         50  
10 9     9   989 use warnings;
  9         22  
  9         315  
11             #use Log::Any '$log';
12              
13 9     9   3339 use String::Pad qw(pad);
  9         2769  
  9         461  
14 9     9   3603 use Text::ANSI::Util qw(ta_pad);
  9         40611  
  9         575  
15 9     9   3870 use Text::ANSI::WideUtil qw(ta_mbpad);
  9         407462  
  9         557  
16 9     9   80 use Text::WideChar::Util qw(mbpad);
  9         14  
  9         2363  
17              
18             sub _pad {
19 17     17   75 my ($which, %args) = @_;
20 17         51 my ($in, $out) = ($args{in}, $args{out});
21              
22 17         159 __pad_begin($which, \%args);
23 17         71 while (my ($index, $item) = each @$in) {
24 91         165 push @$out, __pad_item($which, $item, \%args);
25             }
26              
27 17         77 [200, "OK"];
28             }
29              
30             sub __pad_begin {
31 23     23   38 my ($which, $args) = @_;
32 23   100     254 $args->{char} //= ' ';
33             }
34              
35             sub __pad_item {
36 127     127   242 my ($which, $item, $args) = @_;
37              
38             {
39 127 100 100     140 last if !defined($item) || ref($item);
  127         380  
40 91 50       184 if ($args->{ansi}) {
    50          
41 0 0       0 if ($args->{mb}) {
42             $item = ta_mbpad($item, $args->{width}, $which,
43 0         0 $args->{char}, $args->{trunc});
44             } else {
45             $item = ta_pad ($item, $args->{width}, $which,
46 0         0 $args->{char}, $args->{trunc});
47             }
48             } elsif ($args->{mb}) {
49             $item = mbpad($item, $args->{width}, $which,
50 0         0 $args->{char}, $args->{trunc});
51             } else {
52             $item = pad ($item, $args->{width}, $which,
53 91         246 $args->{char}, $args->{trunc});
54             }
55             }
56 127         1929 return $item;
57             }
58              
59             1;
60             # ABSTRACT: _pad
61              
62             __END__