NAME

 Tags::Output::PYX - PYX class for line oriented output for 'Tags'.

SYNOPSYS

 use Tags::Output::PYX;

 my $obj = Tags::Output::PYX->new(%parameters);
 $obj->finalize;
 my $ret = $obj->flush($reset_flag);
 my @elements = $obj->open_elements;
 $obj->put(@data);
 $obj->reset;

 # Deprecated methods.
 my @elements = $obj->open_tags;

PYX LINE CHARS

 ?  - Instruction.
 (  - Open tag.
 )  - Close tag.
 A  - Attribute.
 -  - Normal data.

METHODS

new

 my $obj = Tags::Output::PYX->new(%parameters);

Constructor.

Returns instance of object.

  • auto_flush

     Auto flush flag.
     Default value is 0.
  • output_callback

     Output callback.
     Default value is undef.
  • output_handler

     Set output handler.
     Default value is undef.
  • output_sep

     Output separator.
     Default value is newline.
  • skip_bad_data

     Skip bad tags.
     Default value is 0.
  • strict_instruction

     Strict instruction.
     Default value is 1.

finalize

 $obj->finalize;

Finalize Tags output. Automaticly puts end of all opened tags.

Returns undef.

flush

 my $ret = $obj->flush($reset_flag);

Flush tags in object. If defined 'output_handler' flush to its. Or returns code. If enabled $reset_flag, then resets internal variables via reset method.

open_elements

 my @elements = $obj->open_elements;

Get list of open elements.

Returns array of strings.

put

 $obj->put(@data);

Put tags code in tags format.

Returns undef.

reset

 $obj->reset;

Resets internal variables.

Returns undef.

DEPRECATED METHODS

open_tags

 my @elements = $obj->open_tags;

Get list of open elements.

Returns array of strings.

ERRORS

 new():
         Auto-flush can't use without output handler.
         Output handler is bad file handler.
         From Class::Utils::set_params():
                 Unknown parameter '%s'.

 flush():
         Cannot write to output handler.

 put():
         Bad data.
         Bad type of data.
         Bad number of arguments. 'Tags' structure %s 
         Ending bad tag: '%s' in block of tag '%s'.

EXAMPLE

 use strict;
 use warnings;

 use Tags::Output::PYX;

 # Object.
 my $tags = Tags::Output::PYX->new;

 # Put all tag types.
 $tags->put(
         ['b', 'tag'],
         ['a', 'par', 'val'],
         ['c', 'data', \'data'],
         ['e', 'tag'],
         ['i', 'target', 'data'],
         ['b', 'tag'],
         ['d', 'data', 'data'],
         ['e', 'tag'],
 );

 # Print out.
 print $tags->flush."\n";

 # Output:
 # (tag
 # Apar val
 # -<!--data--><!--SCALAR(0x1570740)-->
 # )tag
 # ?target data
 # (tag
 # -datadata
 # )tag

DEPENDENCIES

Error::Pure, Readonly, Tags::Output, Tags::Utils.

SEE ALSO

Tags

Structure oriented SGML/XML/HTML/etc. elements manipulation.

Task::PYX

Install the PYX modules.

Task::Tags

Install the Tags modules.

REPOSITORY

https://github.com/michal-josef-spacek/Tags-Output-PYX

AUTHOR

Michal Josef Špaček skim@cpan.org

LICENSE AND COPYRIGHT

© 2011-2020 Michal Josef Špaček

BSD 2-Clause License

VERSION

0.05