Re: [Cheetahtemplate-discuss] #super directive for blocks
Brought to you by:
rtyler,
tavis_rudd
From: Mike O. <slu...@gm...> - 2006-10-17 21:53:07
|
On 10/17/06, Mailing list subscriptions <ush...@un...> wrote: > It would be very nice if one could *add* content to #blocks when > inheriting from them rather than *replacing* the content of #blocks. I have wanted that occasionally. Without it I end up adding another inheritance level and overriding one block and defining another with a different name. > It would be nice to be able to inherit from that template and do > something like this: > > > #block blockname > > #super > > more text > > #end block I don't know how close #super is to acceptance. Haven't heard anything from Tavis. > Looking at the Cheetah source code, I don't see any barriers to the > proposed #super directive being used within nested #blocks as well. > Given that a #block is just a specialized version of a #def, it may > be that #super would be useful inside #defs as well, although I > haven't thought it through yet; given that #defs can optionally take > arguments the #super directive would need to optionally take > arguments as well. If #super outputs whatever the parent method returns, this would work. But if it were $super instead then you could also assign the value to a variable or use it in an expression. But having a $super that has different arguments than Python's 'super' function would be confusing. (I would like to see it just take the parent method's arguments rather than having to pass "class, self".) On the other hand, $super(arg1, arg2) looks better than #super arg1, arg2 . if the method requires arguments. -- Mike Orr <slu...@gm...> |