The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use 5.006;
use strict;
use warnings;
no warnings qw(uninitialized);

package Apache::Wyrd::Attribute;
our $VERSION = '0.98';
use base qw (Apache::Wyrd);

=pod

=head1 NAME

Apache::Wyrd::Attribute - Unparsed Wyrd template/attribute

=head1 SYNOPSIS

	<BASENAME::Attribute name="title"><BASENAME::CGISetter>$:data</BASENAME::CGISetter></BASENAME::Attribute>

The parent of this object will have it's attribute C<title> set to the value of
the CGI variable "data"

=head1 DESCRIPTION

Modifies attributes of the parent object directly after the enclosed
space is fully parsed.  This is unlike Apache::Wyrd::Template which does
not parse the enclosed area beforehand.  Both these Wyrds are meant to
provide a comprehensible way of setting Wyrd attributes to values which
contain HTML text without resorting to an "insane" escaping syntax.

=head2 HTML ATTRIBUTES

=over

=item name

The name of the attribute of the parent Wyrd which is set to the value of the
enclosing text.

=item value

The value to set the attribute of the parent to.  Defaults to the
enclosed text if unspecified.

=back

=head2 PERL METHODS

I<(format: (returns) name (accepts))>

NONE

=head1 BUGS/CAVEATS/RESERVED METHODS

Reserves the _format_output method.  Modifies the parent Wyrd's
attribute by direct manipulation, violating strict object encapsulation,
sort of like a "family" class.

=cut

sub _format_output {
	my ($self) = @_;
	my $value = ($self->{'value'} || $self->{'_data'});
	$self->_parent->{$self->{'name'}} = $value;
	$self->_debug("Set parent's '$self->{name}' to '$value'");
	$self->{'_data'} = '';
	return;
}

=pod

=head1 AUTHOR

Barry King E<lt>wyrd@nospam.wyrdwright.comE<gt>

=head1 SEE ALSO

=over

=item Apache::Wyrd

General-purpose HTML-embeddable perl object

=back

=head1 LICENSE

Copyright 2002-2007 Wyrdwright, Inc. and licensed under the GNU GPL.

See LICENSE under the documentation for C<Apache::Wyrd>.

=cut

1;