[CDBI] has_a infation of a Time::Piece woes
will at spanner.org
Mon Oct 24 19:25:27 BST 2005
On 24 Oct 2005, at 18:04, Peter Speltz wrote:
> On 10/24/05, William Ross <will at spanner.org> wrote:
>> Have you overridden _croak()? Your code wouldn't normally work
>> because Class::DBI::Relationship::HasA will call _croak if the return
>> value of the custom inflation method is not blessed into the class it
>> expects to see. Which isn't very helpful in your case.
> No i have not overridden _croak to do this. Apparently if the custom
> inflate method does not return a object , then it will pass that onto
> the constructor. Maybe the docs need updated.
ah, my mistake. I missed the second conditional.
it does this:
return $value if ref $value and $value->isa( $a_class );
$self->_croak if ref $value;
so if the inflator returns a simple value or undef then it doesn't
croak and carries on to call the default construction method. As you
say, it even passes $value to the constructor. Perhaps in a previous
version this was helpful (returning an id for inflation?), but now it
seems like a bug.
sorry: replied in too much of a hurry (to get out and walk the dog!)
More information about the ClassDBI