DBIx-Class-Helper-ColumnNames
view release on metacpan or search on metacpan
lib/DBIx/Class/Helper/ColumnNames.pm view on Meta::CPAN
package DBIx::Class::Helper::ColumnNames;
# ABSTRACT: Retrieve column names from a resultset
use v5.20;
use warnings;
use parent 'DBIx::Class';
use Ref::Util qw( is_plain_hashref is_ref );
# RECOMMEND PREREQ: Ref::Util::XS
use experimental qw( lexical_subs postderef signatures );
use namespace::clean;
our $VERSION = 'v0.1.3';
sub get_column_names ($self) {
my @columns;
state sub _get_name ($col) {
if ( is_plain_hashref($col) ) {
my (@names) = grep { $_ !~ /^\-/ } keys $col->%*;
return @names;
}
else {
die "Cannot determine column name from a reference" if is_ref($col);
return $col =~ s/^\w+\.//r;
}
}
$self->_normalize_selection( my $attrs = $self->{attrs} );
for my $key (qw/ columns +columns as +as /) {
next unless $attrs->{$key};
push @columns, map { _get_name($_) } $attrs->{$key}->@*;
}
return $self->result_source->columns unless @columns;
return @columns;
}
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
DBIx::Class::Helper::ColumnNames - Retrieve column names from a resultset
=head1 VERSION
version v0.1.3
=head1 SYNOPSIS
In a resultset:
package MyApp::Schema::ResultSet::Wobbles;
use base qw/DBIx::Class::ResultSet/;
__PACKAGE__->load_components( qw/
( run in 1.541 second using v1.01-cache-2.11-cpan-39bf76dae61 )