— — |
__PACKAGE__->mk_accessors(
qw/name accessor mutator placeholder is_constrained/
);
'""' => sub { shift ->name_lc },
fallback => 1;
sub new {
my $class = shift ;
my $name = shift or croak "Column needs a name" ;
my $opt = shift || {};
return $class ->SUPER::new(
{
name => $name ,
accessor => $name ,
mutator => $name ,
_groups => {},
placeholder => '?' ,
%$opt ,
}
);
}
sub name_lc { lc shift ->name }
sub add_group {
my ( $self , $group ) = @_ ;
$self ->{_groups}->{ $group } = 1;
}
sub groups {
my $self = shift ;
my %groups = %{ $self ->{_groups} };
delete $groups {All} if keys %groups > 1;
return keys %groups ;
}
sub in_database {
return ! scalar grep $_ eq "TEMP" , shift ->groups;
}
1;
|