On Aug 23, 2008, at 8:54 PM, Christoph Zwerschke <[EMAIL PROTECTED]> wrote:

>
> Diez B. Roggisch schrieb:
>> I wonder: how does rules detect that? Through an algebraic analysis?
>
> Yes, it analyzes the rules to check which one is more specific.
>
>> @jsonify.modelobject(clazz)
>>
>> that would render the proper signature.
>
> Good idea. TurboJson could define the following decorator:
>
> def when_sqlobject(classinfo=None):
>     if classinfo:
>         cond = isinstance(classinfo, str) and classinfo or 'classinfo'
>         cond = "isinstance(obj, %s) and " % cond
>     else:
>         cond = ""
>     cond += "is_sqlobject(obj) and not hasattr(obj, '__json__')"
>     return jsonify.when(cond)
>
> Works perfectly well for me.
>
> But I just see that Alberto and Jonathan already solved this problem  
> for
> TurboJson 1.2 by using prioritized_methods (see discussion here:
> http://www.mail-archive.com/[EMAIL PROTECTED]/msg05140.html 
> ).
>
> The idea here is letting the json.py rules always have higher priority
> than the rules that are defined by default. I think this makes sense.
>
> However, we cannot use prioritized_methods for TJ < 1.2 since it does
> not work with RuleDispatch. But we could use something similar,
> turbogears.genericfunctions.MultiorderGenericFunction. The only  
> problem
> is that I would not like to create the reverse depency of TJ from TG,
> and the order parameter is called "order" instead of "prio", and works
> the other way round. So maybe we could integrate a modified
> MultiorderGenericFunction with a prio parameter into TJ 1.1. Then we
> would be fully compatible with TJ 1.2 in this regard.

I
Prioritized_methods is a port of the genericfunctions module TW had  
some time ago when it used ruledispatch (dig through the past  
revisions in TW's repo). You might want to use it as a backport since  
Multiorder in TG has different semantics than prio_meths.

Alberto
>
>
> -- Christoph
>
>
> >

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/turbogears?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to