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-10-26'; # DATE
4             our $VERSION = '1.572'; # VERSION
5              
6 9     9   147 use 5.010;
  9         29  
7 9     9   44 use locale;
  9         24  
  9         49  
8 9     9   278 use strict;
  9         17  
  9         190  
9 9     9   45 use syntax 'each_on_array'; # to support perl < 5.12
  9         19  
  9         37  
10 9     9   1117 use warnings;
  9         22  
  9         320  
11             #use Log::Any '$log';
12              
13 9     9   4045 use String::Pad qw(pad);
  9         3112  
  9         508  
14 9     9   4395 use Text::ANSI::Util qw(ta_pad);
  9         46679  
  9         570  
15 9     9   4218 use Text::ANSI::WideUtil qw(ta_mbpad);
  9         479342  
  9         608  
16 9     9   86 use Text::WideChar::Util qw(mbpad);
  9         17  
  9         2741  
17              
18             sub _pad {
19 17     17   75 my ($which, %args) = @_;
20 17         42 my ($in, $out) = ($args{in}, $args{out});
21              
22 17         144 __pad_begin($which, \%args);
23 17         82 while (my ($index, $item) = each @$in) {
24 91         170 push @$out, __pad_item($which, $item, \%args);
25             }
26              
27 17         84 [200, "OK"];
28             }
29              
30             sub __pad_begin {
31 23     23   43 my ($which, $args) = @_;
32 23   100     94 $args->{char} //= ' ';
33             }
34              
35             sub __pad_item {
36 127     127   265 my ($which, $item, $args) = @_;
37              
38             {
39 127 100 100     142 last if !defined($item) || ref($item);
  127         385  
40 91 50       199 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         247 $args->{char}, $args->{trunc});
54             }
55             }
56 127         1908 return $item;
57             }
58              
59             1;
60             # ABSTRACT: _pad
61              
62             __END__