1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
package HTMLFormFu::MyFieldRole;
use Moose::Role;
around container_attributes => \&_myfieldrole_attrs;
around container_attrs => \&_myfieldrole_attrs;
around container_attributes_xml => \&_myfieldrole_attrs;
around container_attrs_xml => \&_myfieldrole_attrs;
my $key = 'class';
my $value = 'myfieldrole';
sub _myfieldrole_attrs {
my $orig = shift;
my $self = shift;
if (@_) {
return $self->$orig(@_);
}
my $attrs = $self->{container_attributes};
my $done;
if ( exists $attrs->{$key} ) {
my @vals = split /\s+/, $attrs->{$key};
if ( first { $_ eq $value } @vals ) {
$done = 1;
}
}
if ( !$done ) {
$self->add_container_attrs( { $key => $value } );
}
return $attrs;
}
1;
|