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 @tags = $obj->open_tags;
$obj->put(@data);
$obj->reset;

PYX LINE CHARS

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

METHODS

new(%parameters)
Constructor.
  • 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()
Finalize Tags output.
Automaticly puts end of all opened tags.
Returns undef.
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_tags()
Returns array of opened tags.
put(@data)
Put tags code in tags format.
Returns undef.
reset()
Resets internal variables.
Returns undef.

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

# Pragmas.
use strict;
use warnings;

# Modules.
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, Tags::Output, Tags::Output::Raw.

AUTHOR

Michal Špaček skim@cpan.org

LICENSE AND COPYRIGHT

BSD 2-Clause License

VERSION

0.01