[Zope-dev] ZCallable & the Renderable Folders Patch
Chris Withers
chrisw@nipltd.com
Wed, 19 Jul 2000 23:28:44 +0100
Steve Alexander wrote:
> The __call__ method is what gets invoked when you call the method,
> either through the magic of <dtml-var Catalog> or with <dtml-var
> "Catalog(client, namespace, args*)">.
Now you see, this is what confuses me...
<dtml-var dtml_method> renders that method, implying in my mind that
__call__ should render stuff adn return it.
However, then with ZSearchable stuff, <dtml-var catalog> returns a list
of all the objects in the catalog, or does a search if you poke it
right.
In my mind, __call__ is a bit ambiguous right now. I'd love to see
objects have a __render__ method which gets called to render them, and
leave the __call__ method when they're being specifically called..
Then I guess dtml would need <dtml-render adn <dtml-call instead of just
<dtml-var
I guess I'm in the minority when it comes to seeing this as a good
thing? ;-)
<snip protocols thing?
> This mechanism is pretty much separate from the __call__ mechanism.
That's all cool, but not what was causing me confusion...
> In conclusion, I can't see any disadvantage to making Folder callable as
> I suggested in a previous message. It doesn't appear to break anything
> :-)
I'd agree, since it doesn't make my confusion over __call__ any worse..
> IIRC, ZRenderable lets you choose what method you want __call__ to
> forward to, whereas ZCallable always chooses the method index_html, if
> it exists.
Ah, so ZCallable is an inferior ZRenderable? *joke* :-)
> You have to do something like <dtml-var
> "nameofafolder.index_html(_.None, _)">. But, that's not quite the same
> because if the folder lacks an index_html, it gets acquired.
But index_html will get acquired with that method too as folders do
Implicit acquisiton, or am I missing something?
Hmm, I think the patch is good, has anyoen subitted it yet?
cheers,
Chris