X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FResultSourceProxy.pm;h=feb0a593c154674275e9a936d34480e01700c3f4;hb=6515609bb769fc957052afa939d725d7a8f819f7;hp=4d80cba05f6ffed1a91f28c2a20edf38358c971e;hpb=a48e92d70ba95a7559fc2d17c953e2f84ee827ed;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/ResultSourceProxy.pm b/lib/DBIx/Class/ResultSourceProxy.pm index 4d80cba..feb0a59 100644 --- a/lib/DBIx/Class/ResultSourceProxy.pm +++ b/lib/DBIx/Class/ResultSourceProxy.pm @@ -5,13 +5,29 @@ use strict; use warnings; use base qw/DBIx::Class/; +use Scalar::Util qw/blessed/; +use Carp::Clan qw/^DBIx::Class/; sub iterator_class { shift->result_source_instance->resultset_class(@_) } sub resultset_class { shift->result_source_instance->resultset_class(@_) } sub result_class { shift->result_source_instance->result_class(@_) } -sub source_name { shift->result_source_instance->source_name(@_) } sub source_info { shift->result_source_instance->source_info(@_) } +sub set_inherited_ro_instance { + my $self = shift; + + croak "Cannot set @{[shift]} on an instance" if blessed $self; + + return $self->set_inherited(@_); +} + +sub get_inherited_ro_instance { + return shift->get_inherited(@_); +} + +__PACKAGE__->mk_group_accessors('inherited_ro_instance' => 'source_name'); + + sub resultset_attributes { shift->result_source_instance->resultset_attributes(@_); } @@ -21,11 +37,16 @@ sub add_columns { my $source = $class->result_source_instance; $source->add_columns(@cols); foreach my $c (grep { !ref } @cols) { + # If this is an augment definition get the real colname. + $c =~ s/^\+//; + $class->register_column($c => $source->column_info($c)); } } -*add_column = \&add_columns; +sub add_column { + shift->add_columns(@_); +} sub has_column { shift->result_source_instance->has_column(@_); @@ -35,8 +56,8 @@ sub column_info { shift->result_source_instance->column_info(@_); } -sub load_column_info_from_storage { - shift->result_source_instance->load_column_info_from_storage; +sub column_info_from_storage { + shift->result_source_instance->column_info_from_storage(@_); } sub columns { @@ -57,6 +78,10 @@ sub primary_columns { shift->result_source_instance->primary_columns(@_); } +sub _pri_cols { + shift->result_source_instance->_pri_cols(@_); +} + sub add_unique_constraint { shift->result_source_instance->add_unique_constraint(@_); } @@ -88,4 +113,7 @@ sub relationship_info { shift->result_source_instance->relationship_info(@_); } +sub has_relationship { + shift->result_source_instance->has_relationship(@_); +} 1;