X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FSchema%2FLoader%2FBase.pm;h=3e93db4c0e6e0cc44c45b5d94d6d26b679cea4cc;hb=fb3bb5958c3dae19c8304c9e489713b956c93efb;hp=51bf6524b267ae27ae22dc564c5daeb80773037f;hpb=1c94fb11fa5772bdc5aa8d785a429ab1d7d5fab9;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 51bf652..3e93db4 100644 --- a/lib/DBIx/Class/Schema/Loader/Base.pm +++ b/lib/DBIx/Class/Schema/Loader/Base.pm @@ -343,6 +343,8 @@ sub _check_back_compat { unshift @{"${class}::ISA"}, 'DBIx::Class::Schema::Loader::Compat::v0_040'; Class::C3::reinitialize; +# just in case, though no one is likely to dump a dynamic schema + $self->version_to_dump('0.04006'); return; } @@ -388,14 +390,26 @@ sub _find_file_in_inc { return; } -sub _load_external { +sub _class_path { my ($self, $class) = @_; my $class_path = $class; $class_path =~ s{::}{/}g; $class_path .= '.pm'; - my $real_inc_path = $self->_find_file_in_inc($class_path); + return $class_path; +} + +sub _find_class_in_inc { + my ($self, $class) = @_; + + return $self->_find_file_in_inc($self->_class_path($class)); +} + +sub _load_external { + my ($self, $class) = @_; + + my $real_inc_path = $self->_find_class_in_inc($class); return if !$real_inc_path; @@ -403,9 +417,6 @@ sub _load_external { warn qq/# Loaded external class definition for '$class'\n/ if $self->debug; - croak 'Failed to locate actual external module file for ' - . "'$class'" - if !$real_inc_path; open(my $fh, '<', $real_inc_path) or croak "Failed to open '$real_inc_path' for reading: $!"; $self->_ext_stmt($class,