package LIMS::Model::Roles::DBIxSimple; use Moose::Role; sub get_cols { my ($self, $table) = @_; my $dbh = $self->lims_dbix; my $meta = $self->get_meta($table); # warn Dumper $meta; my @cols = keys %$meta; # warn Dumper \@cols; return \@cols; } sub get_meta { my ($self, $table) = @_; my $dbh = $self->lims_dbix; my $t = $dbh->query("show columns from $table")->hashes; # warn Dumper $t; my %meta = map { $_->{field} => $_ } @$t; # warn Dumper \%meta; return \%meta; } sub get_enum_opts { my ($self, $table, $col) = @_; my $meta = $self->get_meta($table); my $col_type = $meta->{$col}->{type}; my ($enum) = $col_type =~ /enum\((.*)\)/; # warn $enum; my @opts = sort grep { $_ =~ s/\'//g } split ',', $enum; # warn Dumper \@opts; return \@opts; } 1;