X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FSchema%2FLoader%2FBase.pm;h=85374ec369225160ee9f1c4433494bce5e9d1739;hb=df55c5fa6330a8443a23d74ded0b23f383be5563;hp=090e429ca98542c357da8f4045b148a283168b8e;hpb=cc4f11a26119d73c6af01bef015c6b5f1b98d189;p=dbsrgits%2FDBIx-Class-Schema-Loader.git diff --git a/lib/DBIx/Class/Schema/Loader/Base.pm b/lib/DBIx/Class/Schema/Loader/Base.pm index 090e429..85374ec 100644 --- a/lib/DBIx/Class/Schema/Loader/Base.pm +++ b/lib/DBIx/Class/Schema/Loader/Base.pm @@ -1507,14 +1507,21 @@ sub _setup_src_meta { my $cols = $self->_table_columns($table); my $col_info = $self->__columns_info_for($table); + + while (my ($col, $info) = each %$col_info) { + if ($col =~ /\W/) { + ($info->{accessor} = $col) =~ s/\W+/_/g; + } + } + if ($self->preserve_case) { - for my $col (keys %$col_info) { + while (my ($col, $info) = each %$col_info) { if ($col ne lc($col)) { if ((not exists $self->naming->{column_accessors}) || (($self->naming->{column_accessors} =~ /(\d+)/)[0] >= 7)) { - $col_info->{$col}{accessor} = $self->_make_column_accessor_name($col); + $info->{accessor} = $self->_make_column_accessor_name($info->{accessor} || $col); } else { - $col_info->{$col}{accessor} = lc $col; + $info->{accessor} = lc($info->{accessor} || $col); } } }