X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FSchema%2FLoader%2FRelBuilder.pm;h=e3475dd6e3a3d5bdb38131b86c8dd693261a6508;hb=414c61a02b22a17b8dbdad49e4e47d4cee1c3981;hp=a12c0351d391c647d061fab55f97e9296ef0667c;hpb=cc4f11a26119d73c6af01bef015c6b5f1b98d189;p=dbsrgits%2FDBIx-Class-Schema-Loader.git diff --git a/lib/DBIx/Class/Schema/Loader/RelBuilder.pm b/lib/DBIx/Class/Schema/Loader/RelBuilder.pm index a12c035..e3475dd 100644 --- a/lib/DBIx/Class/Schema/Loader/RelBuilder.pm +++ b/lib/DBIx/Class/Schema/Loader/RelBuilder.pm @@ -7,7 +7,7 @@ use Carp::Clan qw/^DBIx::Class/; use Lingua::EN::Inflect::Phrase (); use DBIx::Class::Schema::Loader::Utils 'split_name'; -our $VERSION = '0.07000'; +our $VERSION = '0.07001'; =head1 NAME @@ -213,9 +213,26 @@ sub _remote_attrs { return $attrs; } +sub _sanitize_name { + my ($self, $name) = @_; + + if (ref $name) { + # scalar ref for weird table name (like one containing a '.') + ($name = $$name) =~ s/\W+/_/g; + } + else { + # remove 'schema.' prefix if any + $name =~ s/^[^.]+\.//; + } + + return $name; +} + sub _normalize_name { my ($self, $name) = @_; + $name = $self->_sanitize_name($name); + my @words = split_name $name; return join '_', map lc, @words;