Martijn Faassen wrote:
Marius Gedminas wrote:
[snip]
Also, I'd like a way to specify the adapter name in the adapter class.
Something like
from zope.interface import implements
from zope.component import adapts, named
class MyNamedAdapter(object):
adapts(IFoo)
implements(IBar)
named('myname')
def __init__(self, context):
self.context
Also I'd like to have a zope.component.Adapter class that defines
def __init__(self, context):
self.context
and does nothing else. It seems to me that 95% of all adapters have an
__init__ like this. It is tiring to keep repeating it.
Also, I want a pony. Ok, not really.
You can have your pony. In grok, there's a grok.Adapter class, which
does the thing in init, where you can specify the name using grok.name,
and which causes registration as an adapter without the need for ZCML.
E.g.:
import grok
from zope.index.text.interfaces import ISearchableText
class Page(grok.Model):
def __init__(self, text):
self.text = text
class SearchableTextForPage(grok.Adapter):
grok.implements(ISearchableText)
grok.context(Page) # automatically assumed = the default
grok.name('') # the default
def getSearchableText(self):
# self.context is set by grok.Adapter.__init__
return self.context.text
--
http://worldcookery.com -- Professional Zope documentation and training
Next Zope 3 training at Camp5: http://trizpug.org/boot-camp/camp5
_______________________________________________
Zope3-dev mailing list
Zope3-dev@zope.org
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com