NAME
Tags::Output - Base class for Tags::Output::*.
SYNOPSIS
use Tags::Output;
my $obj = Tags::Output->new(%parameters);
$obj->finalize;
my $ret = $obj->flush($reset_flag);
my @elements = $obj->open_elements;
$obj->put(@data);
$obj->reset;
# Deprecated methods.
my @tags = $obj->open_tags;
METHODS
new(%parameters)- 
auto_flushAuto flush flag. Default value is 0.input_tags_item_callbackInput 'Tags' item callback. Callback is processing before main 'Tags' put(). It's usefull for e.g. validation. Default value is undef.output_callbackOutput callback. Default value is callback which encode to output encoding, if parameter 'output_encoding' is present. Arguments of callback: - $data_sr - Reference to data - $self - Object Example for output encoding in iso-8859-2: 'output_callback' => sub { my ($data_sr, $self) = @_; ${$data_sr} = encode('iso-8859-2', ${$data_sr}); return; }output_encodingOutput encoding. Default value is undef, which mean not encode.output_handlerSet output handler. Default value is undef.output_sepOutput separator. Default value is newline (\n).skip_bad_tagsSkip bad tags. Default value is 0.strict_instructionStrict 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 return code. If enabled $reset_flag, then resets internal variables via reset method. open_elements()- 
Return array of opened elements. put(@data)- 
Put tags code in tags format. Returns undef. reset($reset_flag)- 
Resets internal variables. Returns undef. 
DEPRECATED METHODS
- 
Return array of opened tags. 
METHODS TO OVERWRITE
new(%parameters)- 
Constructor.
 _check_params()- 
Check parameters to rigth values. Can check constructor parameters. Returns undef. _default_parameters()- 
Default parameters. Set list of constructor parameters with default value. e.g.: $self->{'foo'} = 'bar'; Returns undef. _put_attribute($attr, $value)- 
Attribute callback. Method can write output to 'flush_code' object parameter as array or scalar. Returns undef. _put_begin_of_tag($tag)- 
Begin of tag. Method can write output to 'flush_code' object parameter as array or scalar. Returns undef. _put_cdata(@cdata)- 
CData. Method can write output to 'flush_code' object parameter as array or scalar. Returns undef. _put_comment(@comment)- 
Comment. Method can write output to 'flush_code' object parameter as array or scalar. Returns undef. _put_data(@data)- 
Data. Method can write output to 'flush_code' object parameter as array or scalar. Returns undef. _put_end_of_tag($tag)- 
End of tag. Method can write output to 'flush_code' object parameter as array or scalar. Returns undef. _put_instruction($target, $code)- 
Instruction. Method can write output to 'flush_code' object parameter as array or scalar. Returns undef. _put_raw(@raw_data)- 
Raw data. Method can write output to 'flush_code' object parameter as array or scalar. 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
EXAMPLE
use strict;
use warnings;
use Tags::Output;
# Object.
my $tags = Tags::Output->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:
# Begin of tag
# Attribute
# Comment
# End of tag
# Instruction
# Begin of tag
# Data
# End of tag
DEPENDENCIES
Class::Utils, Encode, Error::Pure.
SEE ALSO
- Task::Tags
 - 
Install the Tags modules.
 
REPOSITORY
https://github.com/michal-josef-spacek/Tags
AUTHOR
Michal Josef Špaček mailto:skim@cpan.org
LICENSE AND COPYRIGHT
© 2005-2024 Michal Josef Špaček
BSD 2-Clause License
VERSION
0.16