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 add_columns {
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}++;
($name, $field) = @$field if ref $field;
- my $accessor = $class->$maker($group, $field);
- my $alias = "_${name}_accessor";
-
- # warn " $field $alias\n";
- {
- no strict 'refs';
-
- $class->_deploy_accessor($name, $accessor);
- $class->_deploy_accessor($alias, $accessor);
+ for( $name, "_${name}_accessor" ) {
+ $class->_deploy_accessor(
+ $_,
+ $class->$maker($group, $field, $_)
+ );
}
}
}
-sub all_columns { return shift->result_source_instance->columns; }
+sub all_columns { return shift->result_source->columns; }
sub primary_column {
my ($class) = @_;