-----BEGIN PGP SIGNED MESSAGE-----
Chris Withers wrote:
> Stephan Richter wrote:
>> On Friday 17 November 2006 03:43, Chris Withers wrote:
>>> What do you suggest I do when the adapter needs to know the name it was
>>> registered for?
>> You can make the name part of the adapter API.
> Not sure what you mean by this?
>> However, I would suggest revising the design; I have never come across a
>> scenario where I wanted the name of the adapter be known within the adapter.
>> This seems to be a recipe for trouble.
> I don't think it'll be a common pattern, but it doesn't feel right to me
> that a named adapter (ie: one registered with a specific name) has no
> way of finding out what name it has been registered with...
The classic pattern here would be to create the "guts" of your adapter
as a class, and then curry the "factory" part which governs
instantiation of the class. You could double-curry the factory, as
well, if you wanted to avoid the class. E.g.:
def __init__(self, context, name):
self.context = context
self.name = name
return 'Sweating: %s' % self.name
def _curried(context, name=name):
return MyNamedAdapter(context, name)
for name in ('vindaloo', 'madras', 'tiki_masala'):
globals()[name] = MNA_factory_maker(name)
and then in ZCML:
Tres Seaver +1 202-558-7113 [EMAIL PROTECTED]
Palladion Software "Excellence by Design" http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v188.8.131.52 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
-----END PGP SIGNATURE-----
Zope3-dev mailing list