# $Id: /local/CPAN/Mango/lib/Mango/Attribute.pm 1644 2008-06-02T01:46:53.055259Z claco $
package Mango::Attribute;
use strict;
use warnings;
BEGIN {
use base qw/Mango::Object/;
__PACKAGE__->mk_group_accessors( 'column', qw/name value/ );
}
sub destroy {
my $self = shift;
return $self->meta->provider->delete_attributes( $self->meta->parent,
{ id => $self->id } );
}
sub update {
my $self = shift;
return $self->meta->provider->update_attribute($self);
}
1;
__END__
=head1 NAME
Mango::Attribute - Module representing a product attribute
=head1 SYNOPSIS
my $attributes = $product->attributes;
while (my $attribute = $attributes->next) {
print $attribute->name, ': ', $attribute->value;
};
=head1 DESCRIPTION
Mango::Attribute represents an attribute (name/value pair) of an individual
product.
=head1 METHODS
=head2 created
Returns the date and time in UTC the attribute was created as a DateTime
object.
print $attribute->created;
=head2 destroy
Deletes the current attribute from the product to which it is assigned.
$attribute->destroy;
=head2 id
Returns the id of the current attribute.
print $attribute->id;
=head2 name
=over
=item Arguments: $name
=back
Gets/sets the name of the current attribute.
print $attribute->name;
=head2 update
Saves any changes made to the attribute back to the provider.
$attribute->value('Red');
$attribute->update;
Whenever L</update> is called, L</updated> is automatically set to the
current time in UTC.
=head2 updated
Returns the date and time in UTC the attribute was last updated as a DateTime
object.
print $attribute->updated;
=head2 value
=over
=item Arguments: $value
=back
Gets/sets the value of the current attribute.
print $attribute->value;
=head1 SEE ALSO
L<Mango::Object>, L<Mango::Product>, L<Mango::Provider::Products>, L<DateTime>
=head1 AUTHOR
Christopher H. Laco
CPAN ID: CLACO
claco@chrislaco.com
http://today.icantfocus.com/blog/