X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FResultSourceProxy.pm;h=9975540565dcb3c33770d2f252edece58f145072;hb=034d0be414a18cf3730c1e6e260acf6e70df476c;hp=5aed87b073514e351a8b543a45b94ae6fbfe2d7a;hpb=80c90f5d6c31d3464041a6e927495ed205c7a32d;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/ResultSourceProxy.pm b/lib/DBIx/Class/ResultSourceProxy.pm index 5aed87b..9975540 100644 --- a/lib/DBIx/Class/ResultSourceProxy.pm +++ b/lib/DBIx/Class/ResultSourceProxy.pm @@ -1,42 +1,106 @@ -package DBIx::Class::ResultSourceProxy; +package # hide from PAUSE + DBIx::Class::ResultSourceProxy; 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 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_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(@_); +} sub add_columns { my ($class, @cols) = @_; 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)); } } -sub has_column { - my ($self, $column) = @_; - return $self->result_source_instance->has_column($column); +sub add_column { + shift->add_columns(@_); } -sub column_info { - my ($self, $column) = @_; - return $self->result_source_instance->column_info($column); +sub has_column { + shift->result_source_instance->has_column(@_); } - -sub columns { - return shift->result_source_instance->columns(@_); -} - -sub set_primary_key { shift->result_source_instance->set_primary_key(@_); } -sub primary_columns { shift->result_source_instance->primary_columns(@_); } +sub column_info { + shift->result_source_instance->column_info(@_); +} + +sub column_info_from_storage { + shift->result_source_instance->column_info_from_storage(@_); +} + +sub columns { + shift->result_source_instance->columns(@_); +} + +sub remove_columns { + shift->result_source_instance->remove_columns(@_); +} -sub add_unique_constraint { shift->result_source_instance->add_unique_constraint(@_); } -sub unique_constraints { shift->result_source_instance->unique_constraints(@_); } +*remove_column = \&remove_columns; + +sub set_primary_key { + shift->result_source_instance->set_primary_key(@_); +} + +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(@_); +} + +sub add_unique_constraints { + shift->result_source_instance->add_unique_constraints(@_); +} + +sub unique_constraints { + shift->result_source_instance->unique_constraints(@_); +} + +sub unique_constraint_names { + shift->result_source_instance->unique_constraint_names(@_); +} + +sub unique_constraint_columns { + shift->result_source_instance->unique_constraint_columns(@_); +} sub add_relationship { my ($class, $rel, @rest) = @_; @@ -53,4 +117,7 @@ sub relationship_info { shift->result_source_instance->relationship_info(@_); } +sub has_relationship { + shift->result_source_instance->has_relationship(@_); +} 1;