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-2021 Michal Josef Špaček

    Artistic License

    BSD 2-Clause License

VERSION
    0.07

