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.571'; # VERSION
5              
6 9     9   156 use 5.010;
  9         29  
7 9     9   47 use locale;
  9         29  
  9         51  
8 9     9   284 use strict;
  9         19  
  9         228  
9 9     9   49 use syntax 'each_on_array'; # to support perl < 5.12
  9         17  
  9         45  
10 9     9   1255 use warnings;
  9         21  
  9         389  
11             #use Log::Any '$log';
12              
13 9     9   4396 use String::Pad qw(pad);
  9         3349  
  9         538  
14 9     9   4730 use Text::ANSI::Util qw(ta_pad);
  9         49840  
  9         579  
15 9     9   4238 use Text::ANSI::WideUtil qw(ta_mbpad);
  9         508181  
  9         644  
16 9     9   85 use Text::WideChar::Util qw(mbpad);
  9         19  
  9         2905  
17              
18             sub _pad {
19 17     17   80 my ($which, %args) = @_;
20 17         51 my ($in, $out) = ($args{in}, $args{out});
21              
22 17         145 __pad_begin($which, \%args);
23 17         85 while (my ($index, $item) = each @$in) {
24 91         185 push @$out, __pad_item($which, $item, \%args);
25             }
26              
27 17         89 [200, "OK"];
28             }
29              
30             sub __pad_begin {
31 23     23   48 my ($which, $args) = @_;
32 23   100     103 $args->{char} //= ' ';
33             }
34              
35             sub __pad_item {
36 127     127   289 my ($which, $item, $args) = @_;
37              
38             {
39 127 100 100     150 last if !defined($item) || ref($item);
  127         439  
40 91 50       220 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         291 $args->{char}, $args->{trunc});
54             }
55             }
56 127         2212 return $item;
57             }
58              
59             1;
60             # ABSTRACT: _pad
61              
62             __END__