Author image Michal Josef Špaček

NAME

CSS::Struct::Output::Indent - Indent printing 'CSS::Struct' structure to CSS code.

SYNOPSIS

 use CSS::Struct::Output::Indent;

 my $css = CSS::Struct::Output::Indent->new(%parameters);
 my $ret_or_undef = $css->flush($reset_flag);
 $css->put(@data);
 $css->reset;

METHODS

new

 my $css = CSS::Struct::Output::Indent->new(%parameters);

Constructor.

Returns instance of object.

  • auto_flush

     Auto flush flag.
     Default is 0.
  • comment_delimeters

     Reference to array with begin and end comment delimeter.
     Default value is ['/*', '*/'].
     Possible values are:
     - ['/*', '*/']
     - ['<!--', '-->'],
  • next_indent

     Indent string.
     Default value is TAB.
  • output_handler

     Handler for print output strings.
     Must be a GLOB.
     Default is undef.
  • skip_bad_types

     Flag, that means bad 'CSS::Struct' types skipping.
     Default value is 0.
  • skip_comments

     Flag, that means comment skipping.
     Default value is 0.

flush

 my $ret_or_undef = $css->flush($reset_flag);

Flush CSS structure in object. If defined 'output_handler' flush to its. Or return CSS. If enabled $reset_flag, then resets internal variables via reset method.

Returns output string or undef.

put(@data)

 $css->put(@data);

Put CSS structure in format specified in CSS::Struct.

Returns undef.

reset

 $css->reset;

Resets internal variables.

Returns undef.

ERRORS

 From CSS::Struct::Output:
         Auto-flush can't use without output handler.
         Bad comment delimeters.
         Bad data.
         Bad number of arguments.
                 ('CSS::Struct' structure array),
         Bad type of data.
         Cannot write to output handler.
         No opened selector.
         Output handler is bad file handler.
         Unknown parameter '%s'.

EXAMPLE

 use strict;
 use warnings;

 use CSS::Struct::Output::Indent;

 my $css = CSS::Struct::Output::Indent->new(
         'output_handler' => \*STDOUT,
 );

 $css->put(['s', 'selector#id']);
 $css->put(['s', 'div div']);
 $css->put(['s', '.class']);
 $css->put(['d', 'weight', '100px']);
 $css->put(['d', 'font-size', '10em']);
 $css->put(['e']);
 $css->flush;
 print "\n";

 # Output:
 # selector#id, div div, .class {
 #         weight: 100px;
 #         font-size: 10em;
 # }

DEPENDENCIES

CSS::Struct::Output, Indent, Readonly.

SEE ALSO

CSS::Struct

Struct oriented CSS manipulation.

CSS::Struct::Output

Base class for CSS::Struct::Output::*.

CSS::Struct::Output::Raw

Raw printing 'CSS::Struct' structure to CSS code.

REPOSITORY

https://github.com/michal-josef-spacek/CSS-Struct-Output-Indent

AUTHOR

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

http://skim.cz

LICENSE AND COPYRIGHT

© 2011-2021 Michal Josef Špaček

BSD 2-Clause License

VERSION

0.04