X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDBIx%2FClass%2FCDBICompat%2FColumnsAsHash.pm;h=b5f1168eae72318535f91718037422df90ff758a;hb=c27646a3d7f0945c7d14f2ba551667335e93f5f6;hp=50acf88d8eac74963d7c42372a2655d4fecdf830;hpb=10221b7913431aa88a47aafdd357b93de062c7c2;p=dbsrgits%2FDBIx-Class.git diff --git a/lib/DBIx/Class/CDBICompat/ColumnsAsHash.pm b/lib/DBIx/Class/CDBICompat/ColumnsAsHash.pm index 50acf88..b5f1168 100644 --- a/lib/DBIx/Class/CDBICompat/ColumnsAsHash.pm +++ b/lib/DBIx/Class/CDBICompat/ColumnsAsHash.pm @@ -54,7 +54,6 @@ sub _make_columns_as_hash { warn "Skipping mapping $col to a hash key because it exists"; } - next unless $self->can($col); tie $self->{$col}, 'DBIx::Class::CDBICompat::Tied::ColumnValue', $self, $col; } @@ -84,7 +83,9 @@ sub FETCH { carp "Column '$col' of '$class/$id' was fetched as a hash" if $ENV{DBIC_CDBICOMPAT_HASH_WARN}; - return $obj->$col(); + return $obj->column_info($col)->{_inflate_info} + ? $obj->get_inflated_column($col) + : $obj->get_column($col); } sub STORE { @@ -96,7 +97,9 @@ sub STORE { carp "Column '$col' of '$class/$id' was stored as a hash" if $ENV{DBIC_CDBICOMPAT_HASH_WARN}; - $obj->$col(shift); + return $obj->column_info($col)->{_inflate_info} + ? $obj->set_inflated_column($col => shift) + : $obj->set_column($col => shift); } 1;