[CDBI] issue with using cdbi::sweet with cdbi::relationship::isa

[prev] [thread] [next] [Date index for 2006/02/06]

From: Rhesa Rozendaal
Subject: [CDBI] issue with using cdbi::sweet with cdbi::relationship::isa
Date: 23:32 on 06 Feb 2006
Hi,

I have an app where I use cdbi::sweet as base. One of my classes uses 
cdbi::relationship::isa, and I found out that retrieve() doesn't work on that 
class.

I tracked this down to the use of a hard-coded reference to Class::DBI::search 
in cdbir::isa. There are other occurences of hard-coded references to methods 
in Class::DBI, so those are broken in this combination as well.

While I'm fine with locally modifying my version of cdbir::isa to using Sweet 
instead, I'd like to see if there's a better way to find the correct original 
search() method.

I have the following in cdbir::isa (at line 160):

     my $old_search = UNIVERSAL::can($self->SUPER::class, 'search');
     *{$self->class."::orig_search"} = $old_search;
				# \&{"Class::DBI::Sweet::search"};

While that lookup of $old_search works in my particular class hierarchy, I 
don't feel it's adequate for general consumption. But I don't know enough 
about the innards of cdbi (or ::sweet) to tell for sure.

Can anyone suggest a better approach to finding the correct original search() 
method?

Rhesa

PS. I have an older 0.05 version of Class::DBI::Relationship::IsA, because the 
one currently on CPAN is riddled with annoying warn() statements, among other 
fragile code.
I really like the idea of IsA, but it's rather immature. Unfortunately I lack 
the means to properly improve it (much like the maintainer, it seems). Any 
help towards improving IsA is highly appreciated!


_______________________________________________
ClassDBI mailing list
ClassDBI@xxxxx.xxxxxxxxxxxxxxxx.xxx
http://lists.digitalcraftsmen.net/mailman/listinfo/classdbi

[CDBI] issue with using cdbi::sweet with cdbi::relationship::isa
Rhesa Rozendaal 23:32 on 06 Feb 2006

Generated at 23:19 on 12 Feb 2006 by mariachi v0.52