The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

 Indent::Form - A perl module for form indenting.

SYNOPSIS

 use Indent::Form;

 my $indent = Indent::Form->new(%parametes);
 my $string = $indent->indent($data_ar, $actual_indent, $non_indent_flag);
 my @string = $indent->indent($data_ar, $actual_indent, $non_indent_flag);

METHODS

new

 my $indent = Indent::Form->new(%parametes);

Constructor.

Returns instance of object.

  • ansi

     Use with ANSI sequences.
     Default value is 0.
  • align

     Align of left side of form.
     Default value is 'right'.
  • fill_character

     Fill character for left side of form.
     Default value is ' '.
  • form_separator

     Form separator.
     Default value of 'form_separator' is ': '.
  • line_size

     Line size.
     Default value of 'line_size' is 79 chars.
  • next_indent

     Next indent.
     Default value of 'next_indent' isn't define.
  • output_separator

     Output separator.
     Default value of 'output_separator' is new line (\n).

indent

 my $string = $indent->indent($data_ar, $actual_indent, $non_indent_flag);
 my @string = $indent->indent($data_ar, $actual_indent, $non_indent_flag);

Indent data. Scalar output is controlled by 'output_separator' parameter.

 Arguments:
 $data_ar - Reference to data array ([['key' => 'value'], [..]]);
 $actual_indent - String to actual indent.
 $non_indent_flag - Flag, than says no-indent.

Returns string or array of strings in array context.

ENVIRONMENT

Output is controlled by env variable NO_COLOR via Term::ANSIColor Perl module. If we set 'ansi' parameter to 1 and env variable NO_COLOR will be 1, output will be without ANSI colors. See https://no-color.org/.

ERRORS

 new():
         'align' parameter must be a 'left' or 'right' string.
         'line_size' parameter must be a number.
         Cannot load 'Text::ANSI::Util' module.
         From Class::Utils:
                 Unknown parameter '%s'.

EXAMPLE1

 use strict;
 use warnings;

 use Indent::Form;

 # Indent object.
 my $indent = Indent::Form->new;

 # Input data.
 my $input_ar = [
         ['Filename', 'foo.bar'],
         ['Size', '1456kB'],
         ['Description', 'File'],
         ['Author', 'skim.cz'],
 ];

 # Indent.
 print $indent->indent($input_ar)."\n";

 # Output:
 #    Filename: foo.bar
 #        Size: 1456kB
 # Description: File
 #      Author: skim.cz

EXAMPLE2

 use strict;
 use warnings;

 use Indent::Form;

 # Indent object.
 my $indent = Indent::Form->new(
         'align' => 'left',
 );

 # Input data.
 my $input_ar = [
         ['Filename', 'foo.bar'],
         ['Size', '1456kB'],
         ['Description', 'File'],
         ['Author', 'skim.cz'],
 ];

 # Indent.
 print $indent->indent($input_ar)."\n";

 # Output:
 # Filename   : foo.bar
 # Size       : 1456kB
 # Description: File
 # Author     : skim.cz

EXAMPLE3

 use strict;
 use warnings;

 use Indent::Form;

 # Indent object.
 my $indent = Indent::Form->new(
         'align' => 'left',
         'fill_character' => '.',
 );

 # Input data.
 my $input_ar = [
         ['Filename', 'foo.bar'],
         ['Size', '1456kB'],
         ['Description', 'File'],
         ['Author', 'skim.cz'],
 ];

 # Indent.
 print $indent->indent($input_ar)."\n";

 # Output:
 # Filename...: foo.bar
 # Size.......: 1456kB
 # Description: File
 # Author.....: skim.cz

EXAMPLE4

 use strict;
 use warnings;

 use Encode qw(decode_utf8 encode_utf8);
 use Indent::Form;

 # Indent object.
 my $indent = Indent::Form->new;

 # Input data.
 my $input_ar = [
         ['Filename', 'foo.bar'],
         ['Size', '1456kB'],
         ['Description', 'File'],
         ['Author', 'skim.cz'],
 ];

 # Indent.
 print encode_utf8($indent->indent($input_ar, decode_utf8('|↔| ')))."\n";

 # Output:
 # |↔|    Filename: foo.bar
 # |↔|        Size: 1456kB
 # |↔| Description: File
 # |↔|      Author: skim.cz

EXAMPLE5

 use strict;
 use warnings;

 use Indent::Form;
 use Term::ANSIColor;

 # Indent object.
 my $indent = Indent::Form->new(
         'ansi' => 1,
 );

 # Input data.
 my $input_ar = [
         [
                 color('cyan').'Filename'.color('reset'),
                 color('bold cyan').'f'.color('reset').'oo.'.color('bold cyan').'b'.color('reset').'ar',
         ],
         [
                 color('cyan').'Size'.color('reset'),
                 '1456kB',
         ],
         [
                 color('cyan').'Description'.color('reset'),
                 color('bold cyan').'F'.color('reset').'ile',
         ],
         [
                 color('cyan').'Author'.color('reset'),
                 'skim.cz',
         ],
 ];

 # Indent.
 print $indent->indent($input_ar)."\n";

 # Output (with ANSI colors):
 #    Filename: foo.bar
 #        Size: 1456kB
 # Description: File
 #      Author: skim.cz

DEPENDENCIES

Class::Utils, English, Error::Pure, Indent::Word, List::MoreUtils, Readonly.

Text::ANSI::Util for situation with 'ansi' => 1.

SEE ALSO

Indent
 Class for indent handling.
Indent::Block
 Class for block indenting.
Indent::Data
 Class for data indenting.
Indent::String
 Class for text indenting.
Indent::Utils
 Utilities for Indent classes.
Indent::Word
 Class for word indenting.

REPOSITORY

https://github.com/michal-josef-spacek/Indent-Form

AUTHOR

Michal Josef Špaček mailto:skim@cpan.org

http://skim.cz

LICENSE AND COPYRIGHT

© 2011-2023 Michal Josef Špaček

Artistic License

BSD 2-Clause License

VERSION

0.08