[Checkins] SVN: Sandbox/cklinger/megrok.resource/trunk/src/megrok/resource/ Removed the grokker. it's WAY too expensive to get a grokker simply to set an attribute.
Souheil CHELFOUH
souheil at chelfouh.com
Thu Nov 19 12:51:07 EST 2009
Log message for revision 105884:
Removed the grokker. it's WAY too expensive to get a grokker simply to set an attribute.
Changed:
U Sandbox/cklinger/megrok.resource/trunk/src/megrok/resource/components.py
U Sandbox/cklinger/megrok.resource/trunk/src/megrok/resource/ftests/test_mf.py
D Sandbox/cklinger/megrok.resource/trunk/src/megrok/resource/meta.py
-=-
Modified: Sandbox/cklinger/megrok.resource/trunk/src/megrok/resource/components.py
===================================================================
--- Sandbox/cklinger/megrok.resource/trunk/src/megrok/resource/components.py 2009-11-19 16:42:31 UTC (rev 105883)
+++ Sandbox/cklinger/megrok.resource/trunk/src/megrok/resource/components.py 2009-11-19 17:51:07 UTC (rev 105884)
@@ -1,7 +1,6 @@
# -*- coding: utf-8 -*-
import grokcore.component as grok
-
from zope.interface import Interface
from hurry.zoperesource.zopesupport import getRequest
from grokcore.view.components import DirectoryResource
@@ -17,7 +16,17 @@
class Library(DirectoryResource):
grok.baseclass()
+ class __metaclass__(type):
+ """We do that do avoid having a grokker simply to set an attribute.
+ We could also rely on the classproperty package, but this is quite
+ straightforward.
+ """
+ def bind_grok_name(cls):
+ name = grok.name.bind().get(cls)
+ return name or cls.__name__.lower()
+ name = property(bind_grok_name)
+
@grok.adapter(Interface)
@grok.implementer(ILibraryUrl)
def library_url(library):
@@ -26,7 +35,7 @@
resource = getAdapter(request, name=library.name)
hash = IResourceContentsHash(resource)
base_url = getMultiAdapter((getSite(), request), IAbsoluteURL)
- url = '%s/++noop++%s/@@/%s' % (base_url, hash, library.name)
+ url = '%s/@@/++noop++%s/%s' % (base_url, hash, library.name)
if nothashed:
url = str(getMultiAdapter((getSite(), request),
Modified: Sandbox/cklinger/megrok.resource/trunk/src/megrok/resource/ftests/test_mf.py
===================================================================
--- Sandbox/cklinger/megrok.resource/trunk/src/megrok/resource/ftests/test_mf.py 2009-11-19 16:42:31 UTC (rev 105883)
+++ Sandbox/cklinger/megrok.resource/trunk/src/megrok/resource/ftests/test_mf.py 2009-11-19 17:51:07 UTC (rev 105884)
@@ -46,7 +46,7 @@
>>> from z3c.hashedresource.interfaces import IResourceContentsHash
>>> hash = IResourceContentsHash(library)
- >>> ajs = 'http://localhost/++noop++%s/@@/mylibrary/a.js' % hash
+ >>> ajs = 'http://localhost/@@/++noop++%s/mylibrary/a.js' % hash
>>> browser.open(ajs)
>>> print browser.contents
/* Simple JS */
@@ -68,7 +68,7 @@
"""
-stag = '<script type="text/javascript" src="http://localhost/simpleapp/++noop++%s/@@/mylibrary/a.js"></script>'
+stag = '<script type="text/javascript" src="http://localhost/simpleapp/@@/++noop++%s/mylibrary/a.js"></script>'
import grokcore.component as grok
import grokcore.view as view
@@ -88,6 +88,7 @@
myjs = ResourceInclusion(MyLibrary, 'a.js')
+
class SimpleView(view.View):
grok.context(Interface)
resource.need(myjs)
Deleted: Sandbox/cklinger/megrok.resource/trunk/src/megrok/resource/meta.py
===================================================================
--- Sandbox/cklinger/megrok.resource/trunk/src/megrok/resource/meta.py 2009-11-19 16:42:31 UTC (rev 105883)
+++ Sandbox/cklinger/megrok.resource/trunk/src/megrok/resource/meta.py 2009-11-19 17:51:07 UTC (rev 105884)
@@ -1,16 +0,0 @@
-import martian
-import megrok.resource as mr
-import grokcore.component as grok
-import grokcore.view
-
-from hurry.resource import ResourceInclusion
-from megrok.resource.directive import default_library_name, default_list
-
-
-class LibraryGrokker(martian.ClassGrokker):
- martian.component(mr.Library)
- martian.directive(grok.name, get_default=default_library_name)
-
- def execute(self, klass, config, name, **kw):
- klass.name = name
- return True
More information about the checkins
mailing list