use strict;
use warnings;
-use Sub::Name ();
-use List::Util ();
use base qw/DBIx::Class::Row/;
+use List::Util ();
+use DBIx::Class::_Util 'set_subname';
+use namespace::clean;
+
__PACKAGE__->mk_classdata('_column_groups' => { });
-sub columns {
+sub columns :DBIC_method_is_bypassable_resultsource_proxy {
my $proto = shift;
my $class = ref $proto || $proto;
my $group = shift || "All";
$class->_register_column_group($group => @cols);
}
-sub add_columns {
+sub add_columns :DBIC_method_is_bypassable_resultsource_proxy {
my ($class, @cols) = @_;
- $class->result_source_instance->add_columns(@cols);
+ $class->result_source->add_columns(@cols);
}
sub _register_column_group {
grep {
$_ ne $class
and
- ($_->can($name)||0) == $existing_accessor
+ ( $Class::C3::MRO{$_} || {} )->{methods}{$name}
} @{mro::get_linear_isa($class)}
)
)
no strict 'refs';
no warnings 'redefine';
my $fullname = join '::', $class, $name;
- *$fullname = Sub::Name::subname $fullname, $accessor;
+ *$fullname = set_subname $fullname, $accessor;
}
$our_accessors{$accessor}++;
}
}
-sub all_columns { return shift->result_source_instance->columns; }
+sub all_columns { return shift->result_source->columns; }
sub primary_column {
my ($class) = @_;