use File::Slurp 'slurp';
require DBIx::Class;
-our $VERSION = '0.06000';
+our $VERSION = '0.06001';
__PACKAGE__->mk_group_ro_accessors('simple', qw/
schema
$self->_inject($table_class, @{$self->additional_base_classes});
}
+sub _resolve_col_accessor_collisions {
+ my ($self, $col_info) = @_;
+
+ my $base = $self->result_base_class || 'DBIx::Class::Core';
+ my @components = map "DBIx::Class::$_", @{ $self->components || [] };
+
+ my @methods;
+
+ for my $class ($base, @components) {
+ eval "require ${class};";
+ die $@ if $@;
+
+ push @methods, @{ Class::Inspector->methods($class) || [] };
+ }
+
+ my %methods;
+ @methods{@methods} = ();
+
+ while (my ($col, $info) = each %$col_info) {
+ my $accessor = $info->{accessor} || $col;
+
+ next if $accessor eq 'id'; # special case (very common column)
+
+ if (exists $methods{$accessor}) {
+ $info->{accessor} = undef;
+ }
+ }
+}
+
# Set up metadata (cols, pks, etc)
sub _setup_src_meta {
my ($self, $table) = @_;
$col_info->{$col}{accessor} = lc $col
if $col ne lc($col);
}
- } else {
+ }
+ else {
+ # XXX this needs to go away
$col_info = { map { lc($_), $col_info->{$_} } keys %$col_info };
}
+ $self->_resolve_col_accessor_collisions($col_info);
+
my $fks = $self->_table_fk_info($table);
for my $fkdef (@$fks) {