Tags

 view release on metacpan or  search on metacpan

MANIFEST  view on Meta::CPAN

t/Tags-Output-Raw/05-open_elements.t
t/Tags-Output-Raw/06-open_tags.t
t/Tags-Output-Raw/07-put-simple_element.t
t/Tags-Output-Raw/08-put-element.t
t/Tags-Output-Raw/09-put-preserve_from_attribute.t
t/Tags-Output-Raw/10-put-preserve_from_constructor.t
t/Tags-Output-Raw/11-put-comment.t
t/Tags-Output-Raw/12-put-no_data_callback.t
t/Tags-Output-Raw/13-put-no_simple.t
t/Tags-Output-Raw/14-put-raw.t
t/Tags-Output-Raw/15-put-cdata.t
t/Tags-Output-Raw/16-put-output_handler.t
t/Tags-Output-Raw/17-put-error.t
t/Tags-Output-Raw/18-put-instruction.t
t/Tags-Output-Raw/19-put-data_callback.t
t/Tags-Output-Raw/20-put-skip_bad_tags.t
t/Tags-Output-Raw/21-put-auto_flush.t
t/Tags-Output-Raw/22-put-end_of_element.t
t/Tags-Output/01-use.t
t/Tags-Output/02-version.t
t/Tags-Output/03-new.t

README  view on Meta::CPAN

     cd - Cdata section.
     d  - Data section.
     e  - End of tag.
     i  - Instruction section.
     r  - Raw section.

     Data:
     a - $attr, $value
     b - $element
     c - @comment
     cd - @cdata
     d - @data
     e - $element
     i - $target, $code
     r - @raw_data

SEE ALSO
    Task::Tags
        Install the Tags modules.

REPOSITORY

SIGNATURE  view on Meta::CPAN

SHA256 714c1236c98dead5d0e037af591a9773c213600c2dd99734d529dc6153efea28 t/Tags-Output-Raw/05-open_elements.t
SHA256 ca6921d37b5ea4933eb1c09762ec4c47e9937cd32b8d0852951d3c0a8a607a52 t/Tags-Output-Raw/06-open_tags.t
SHA256 f41d7e6efc91b2c8ab2bde546a068d0a48d11eda8d48cc366e720db0ba5575b4 t/Tags-Output-Raw/07-put-simple_element.t
SHA256 4b9ef16c0f3522decd007194900cc1d5731965e526b123e26b63d3afe4877c33 t/Tags-Output-Raw/08-put-element.t
SHA256 9a908bd34fca5483266aeb6aa03501425a3c71b26f4c7c64fe16b814ce0b7d20 t/Tags-Output-Raw/09-put-preserve_from_attribute.t
SHA256 3aea3a0edf815de9dff4c1ad32ba02025bb04206805ece2f745cb3bc9dd8e310 t/Tags-Output-Raw/10-put-preserve_from_constructor.t
SHA256 913a342213d2f2a1b10226ffb7bfd51272e32c5a2d308c1127e76210b75b76a3 t/Tags-Output-Raw/11-put-comment.t
SHA256 d1b736f367ec1cb8374b170961feb4f770630cea9356ec56a5eb7ae0f369946f t/Tags-Output-Raw/12-put-no_data_callback.t
SHA256 a062e7b19db473ab104fd9bc73c1a005cb598fdddd6eda73483f4e909b9bf0f7 t/Tags-Output-Raw/13-put-no_simple.t
SHA256 05a9f54b7fc96c4140c6fa6e6163816e75b420e84a35b969460c3f761b494099 t/Tags-Output-Raw/14-put-raw.t
SHA256 965706d22b57928d92d5d815f1c5627c244f80a740f7148957b3b5825368aa6e t/Tags-Output-Raw/15-put-cdata.t
SHA256 ca86e35613e308ba460df162b847ebd5bd60bf871d7dec285cd3a91bf3dab0b7 t/Tags-Output-Raw/16-put-output_handler.t
SHA256 3c33fbe6f4edad9cea747f20ae652428ddf73a19d9c8b42a5acd6c9275fddcb6 t/Tags-Output-Raw/17-put-error.t
SHA256 5eaabdb99a73d627e9294f96867a1c41de2553f8072f6964766fc6bb9ff1521b t/Tags-Output-Raw/18-put-instruction.t
SHA256 f686b83eedaabb568b10a1b448cd70607a74dbcd265c9b1c18a245fefd649832 t/Tags-Output-Raw/19-put-data_callback.t
SHA256 01552fc56005e4ac8791a7a589c764d9d9d851f5f4b91293caf1ee2219abdf62 t/Tags-Output-Raw/20-put-skip_bad_tags.t
SHA256 1efed62b16f739887559e5c1f3455879372a8fa71ab25e912f0333d346c52cb1 t/Tags-Output-Raw/21-put-auto_flush.t
SHA256 b51de66532779c9d0c62b8123c778fe7c0fb42b7d9662699759760bcaa547cc7 t/Tags-Output-Raw/22-put-end_of_element.t
SHA256 d0e3d182e5fe8627161f654ed99fb1dc5a7dd5d10ee51d46d4d558ebd0d64b3a t/Tags-Output/01-use.t
SHA256 cca0aaaad7e8f24bf2861647cda9eda93ad0b4eaa43dfb69c67ef7f47d7546f2 t/Tags-Output/02-version.t
SHA256 0c61b06fc5763be8db9c9ed7b34d888b3ad5f527e728c4d6886c180774de5374 t/Tags-Output/03-new.t

Tags.pm  view on Meta::CPAN

 cd - Cdata section.
 d  - Data section.
 e  - End of tag.
 i  - Instruction section.
 r  - Raw section.

 Data:
 a - $attr, $value
 b - $element
 c - @comment
 cd - @cdata
 d - @data
 e - $element
 i - $target, $code
 r - @raw_data

=head1 SEE ALSO

=over

=item L<Task::Tags>

Tags/Output.pm  view on Meta::CPAN

			$self->_check_arguments(\@tags_struct, 1, 2);
			$self->_put_attribute(@tags_struct);

		# Begin of tag.
		} elsif ($type eq 'b') {
			$self->_check_arguments(\@tags_struct, 1, 1);
			$self->_put_begin_of_tag(@tags_struct);

		# CData.
		} elsif ($type eq 'cd') {
			$self->_put_cdata(@tags_struct);

		# Comment.
		} elsif ($type eq 'c') {
			$self->_put_comment(@tags_struct);

		# Data.
		} elsif ($type eq 'd') {
			$self->_put_data(@tags_struct);

		# End of tag.

Tags/Output.pm  view on Meta::CPAN

	my ($self, $tag) = @_;

	push @{$self->{'flush_code'}}, 'Begin of tag';

	unshift @{$self->{'printed_tags'}}, $tag;

	return;
}

# CData.
sub _put_cdata {
	my ($self, @cdata) = @_;

	push @{$self->{'flush_code'}}, 'CData';

	return;
}

# Comment.
sub _put_comment {
	my ($self, @comments) = @_;

Tags/Output.pm  view on Meta::CPAN

 Attribute callback.
 Method can write output to 'flush_code' object parameter as array or scalar.
 Returns undef.

=item C<_put_begin_of_tag($tag)>

 Begin of tag.
 Method can write output to 'flush_code' object parameter as array or scalar.
 Returns undef.

=item C<_put_cdata(@cdata)>

 CData.
 Method can write output to 'flush_code' object parameter as array or scalar.
 Returns undef.

=item C<_put_comment(@comment)>

 Comment.
 Method can write output to 'flush_code' object parameter as array or scalar.
 Returns undef.

Tags/Output/Raw.pm  view on Meta::CPAN

	# Default parameters from SUPER.
	$self->SUPER::_default_parameters();

	# Attribute callback.
	$self->{'attr_callback'} = \&encode_attr_entities;

	# Attribute delimeter.
	$self->{'attr_delimeter'} = q{"};

	# CDATA callback.
	$self->{'cdata_callback'} = undef;

	# Data callback.
	$self->{'data_callback'} = \&encode_char_entities;

	# No data callback.
	$self->{'no_data_callback'} = ['script', 'style'];

	# No simple tags.
	$self->{'no_simple'} = [];

Tags/Output/Raw.pm  view on Meta::CPAN


	# Added tag to printed tags.
	unshift @{$self->{'printed_tags'}}, $tag;

	$self->{'preserve_obj'}->begin($tag);

	return;
}

# CData.
sub _put_cdata {
	my ($self, @cdata) = @_;

	# Flush tmp code.
	if (scalar @{$self->{'tmp_code'}}) {
		$self->_flush_tmp('>');
	}

	# Added begin of cdata section.
	unshift @cdata, '<![CDATA[';

	# Check to bad cdata.
	if (join($EMPTY_STR, @cdata) =~ /]]>$/ms) {
		err 'Bad CDATA data.'
	}

	# Added end of cdata section.
	push @cdata, ']]>';

	# Process data callback.
	$self->_process_callback(\@cdata, 'cdata_callback');

	# To flush code.
	$self->{'flush_code'} .= join $EMPTY_STR, @cdata;

	return;
}

# Comment.
sub _put_comment {
	my ($self, @comments) = @_;

	# Comment string.
	unshift @comments, '<!--';

Tags/Output/Raw.pm  view on Meta::CPAN

         'attr_delimeter' => "'",
 );
 $tags->put(['b', 'tag'], ['a', 'attr', 'val'], ['e', 'tag']);
 $tags->flush;

=item * C<auto_flush>

 Auto flush flag.
 Default is 0.

=item * C<cdata_callback>

 Subroutine for output processing of cdata.
 Input argument is reference to array.
 Default value is undef.
 Example is similar as 'data_callback'.

=item * C<data_callback>

 Subroutine for output processing of data.
 Input argument is reference to array.
 Default value is &Tags::Utils::encode_char_entities.

t/Tags-Output-Raw/19-put-data_callback.t  view on Meta::CPAN


# Test.
my $sub = sub {
	my $data_arr_ref = shift;
	foreach my $data (@{$data_arr_ref}) {
		$data =~ s/a/\./g;
	}
	return;
};
$obj = Tags::Output::Raw->new(
	'cdata_callback' => $sub,
	'data_callback' => $sub,
	'raw_callback' => $sub,
);
$obj->put(
	['b', 'element'],
	['d', 'nan', 'ana'],
	['cd', 'nan'],
	['e', 'element'],
	['r', 'ananas'],
);

t/Tags-Output/05-put.t  view on Meta::CPAN

use Tags::Output;
use Test::More 'tests' => 3;
use Test::NoWarnings;

# Test.
my $obj = Tags::Output->new;
$obj->put(
	['a', 'key', 'val'],
	['b', 'element'],
	['c', 'comment'],
	['cd', 'cdata section'],
	['d', 'data section'],
	['e', 'element'],
	['i', 'target', 'code'],
	['r', 'raw data'],
);
my $ret = $obj->flush;
my $right_ret = <<'END';
Attribute
Begin of tag
Comment

t/Tags-Output/05-put.t  view on Meta::CPAN

			$struct_hr->{$tags_ar->[0]} = 0;
		}
		$struct_hr->{$tags_ar->[0]}++;
		return;
	},
);
$obj->put(
	['a', 'key', 'val'],
	['b', 'element'],
	['c', 'comment'],
	['cd', 'cdata section'],
	['d', 'data section'],
	['e', 'element'],
	['i', 'target', 'code'],
	['r', 'raw data'],
);
$ret = $obj->flush;
is_deeply(
	$struct_hr,
	{
		'a' => 1,



( run in 3.647 seconds using v1.01-cache-2.11-cpan-2398b32b56e )