X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FResultSourceProxy.pm;h=94009a5a00dd243ccef2633a28e84da62cd1c9e1;hb=86a432d4cc096062e2374f118ce38aa131799d6a;hp=db4337a950bfda4485a8aac1ca3100c1bb88a61f;hpb=8d73fcd44e0441f0252744be32bada6816c5ff6b;p=dbsrgits%2FDBIx-Class-Historic.git diff --git a/lib/DBIx/Class/ResultSourceProxy.pm b/lib/DBIx/Class/ResultSourceProxy.pm index db4337a..94009a5 100644 --- a/lib/DBIx/Class/ResultSourceProxy.pm +++ b/lib/DBIx/Class/ResultSourceProxy.pm @@ -5,9 +5,10 @@ use strict; use warnings; use base 'DBIx::Class'; +use mro 'c3'; use Scalar::Util 'blessed'; -use DBIx::Class::_Util 'quote_sub'; +use DBIx::Class::_Util qw( quote_sub fail_on_internal_call ); use namespace::clean; __PACKAGE__->mk_group_accessors('inherited_ro_instance' => 'source_name'); @@ -36,7 +37,10 @@ sub add_columns { } } -sub add_column { shift->add_columns(@_) } +sub add_column { + DBIx::Class::_ENV_::ASSERT_NO_INTERNAL_INDIRECT_CALLS and fail_on_internal_call; + shift->add_columns(@_) +} sub add_relationship { @@ -48,7 +52,10 @@ sub add_relationship { # legacy resultset_class accessor, seems to be used by cdbi only -sub iterator_class { shift->result_source_instance->resultset_class(@_) } +sub iterator_class { + DBIx::Class::_ENV_::ASSERT_NO_INTERNAL_INDIRECT_CALLS and fail_on_internal_call; + shift->result_source_instance->resultset_class(@_) +} for my $method_to_proxy (qw/ source_info @@ -81,10 +88,11 @@ for my $method_to_proxy (qw/ relationship_info has_relationship /) { - quote_sub - __PACKAGE__."::$method_to_proxy" - => "shift->result_source_instance->$method_to_proxy (\@_);" - ; + quote_sub __PACKAGE__."::$method_to_proxy", sprintf( <<'EOC', $method_to_proxy ); + DBIx::Class::_ENV_::ASSERT_NO_INTERNAL_INDIRECT_CALLS and DBIx::Class::_Util::fail_on_internal_call; + shift->result_source_instance->%s (@_); +EOC + } 1;