X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FResultSource.pm;h=659948f789d8894dde4a1485834050c4eb7354b4;hb=04786a4c19fe3964002b69e8a3dbb291524e0610;hp=a5da754ac9248ad737c170b4210565bbac39fabf;hpb=368a5228b107faaef1af5d09b0a25ea8bb603421;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/ResultSource.pm b/lib/DBIx/Class/ResultSource.pm index a5da754..659948f 100644 --- a/lib/DBIx/Class/ResultSource.pm +++ b/lib/DBIx/Class/ResultSource.pm @@ -12,10 +12,10 @@ __PACKAGE__->load_components(qw/AccessorGroup/); __PACKAGE__->mk_group_accessors('simple' => qw/_ordered_columns _columns _primaries _unique_constraints name resultset_attributes - schema from _relationships/); + schema from _relationships source_name/); __PACKAGE__->mk_group_accessors('component_class' => qw/resultset_class - result_class source_name/); + result_class/); =head1 NAME @@ -30,12 +30,25 @@ retrieved, most usually a table (see L) =head1 METHODS +=pod + +=head2 new + + $class->new(); + + $class->new({attribute_name => value}); + +Creates a new ResultSource object. Not normally called directly by end users. + =cut sub new { my ($class, $attrs) = @_; $class = ref $class if ref $class; - my $new = bless({ %{$attrs || {}}, _resultset => undef }, $class); + + my $new = { %{$attrs || {}}, _resultset => undef }; + bless $new, $class; + $new->{resultset_class} ||= 'DBIx::Class::ResultSet'; $new->{resultset_attributes} = { %{$new->{resultset_attributes} || {}} }; $new->{_ordered_columns} = [ @{$new->{_ordered_columns}||[]}]; @@ -178,13 +191,13 @@ sub column_info { my $info; my $lc_info; # eval for the case of storage without table - eval { $info = $self->storage->columns_info_for( $self->from, keys %{$self->_columns} ) }; + eval { $info = $self->storage->columns_info_for( $self->from ) }; unless ($@) { for my $realcol ( keys %{$info} ) { $lc_info->{lc $realcol} = $info->{$realcol}; } foreach my $col ( keys %{$self->_columns} ) { - $self->_columns->{$col} = $info->{$col} || $lc_info->{lc $col}; + $self->_columns->{$col} = { %{ $self->_columns->{$col}}, %{$info->{$col} || $lc_info->{lc $col}} }; } } } @@ -321,7 +334,7 @@ sub add_unique_constraint { $self->_unique_constraints(\%unique_constraints); } -=head2 +=head2 name_unique_constraint Return a name for a unique constraint containing the specified columns. These names consist of the table name and each column name, separated by underscores.