[Checkins]
SVN: grok/branches/jw-simpler-skin-registration/src/grok/meta.py
Complete grokker and make ftests pass.
Philipp von Weitershausen
philikon at philikon.de
Fri Aug 1 08:56:59 EDT 2008
Log message for revision 89140:
Complete grokker and make ftests pass.
Changed:
U grok/branches/jw-simpler-skin-registration/src/grok/meta.py
-=-
Modified: grok/branches/jw-simpler-skin-registration/src/grok/meta.py
===================================================================
--- grok/branches/jw-simpler-skin-registration/src/grok/meta.py 2008-08-01 12:55:15 UTC (rev 89139)
+++ grok/branches/jw-simpler-skin-registration/src/grok/meta.py 2008-08-01 12:56:56 UTC (rev 89140)
@@ -763,20 +763,25 @@
class SkinInterfaceDirectiveGrokker(martian.InstanceGrokker):
martian.component(InterfaceClass)
- def grok(self, name, factory, module_info, config, **kw):
- skin = grok.skin.bind(default=_skin_not_used).get(factory)
+ def grok(self, name, interface, module_info, config, **kw):
+ skin = grok.skin.bind(default=_skin_not_used).get(interface)
if skin is _skin_not_used:
# The skin directive is not actually used on the found interface.
return False
- if not issubclass(factory, IBrowserRequest):
- # For layers it is required to subclass IBrowserRequest.
+ if not interface.extends(IBrowserRequest):
+ # For layers it is required to extend IBrowserRequest.
raise GrokError(
- "The grok.skin() directive is used on interface %s. "
- "However, %s does not subclass IBrowserRequest which is "
+ "The grok.skin() directive is used on interface %r. "
+ "However, %r does not subclass IBrowserRequest which is "
"required for interfaces that are used as layers and are to "
- "be registered as a skin" % (factory, factory), factory)
-
- # Now do the real stuff..
-
+ "be registered as a skin"
+ % (interface.__identifier__, interface.__identifier__),
+ interface
+ )
+ config.action(
+ discriminator=('utility', IBrowserSkinType, skin),
+ callable=zope.component.interface.provideInterface,
+ args=(skin, interface, IBrowserSkinType)
+ )
return True
More information about the Checkins
mailing list