[Checkins] SVN: megrok.resource/tags/0.4/ Tagged version 0.4
Souheil CHELFOUH
souheil at chelfouh.com
Thu Feb 18 08:41:28 EST 2010
Log message for revision 109133:
Tagged version 0.4
Changed:
A megrok.resource/tags/0.4/
D megrok.resource/tags/0.4/docs/HISTORY.txt
A megrok.resource/tags/0.4/docs/HISTORY.txt
D megrok.resource/tags/0.4/setup.py
A megrok.resource/tags/0.4/setup.py
D megrok.resource/tags/0.4/src/megrok/resource/__init__.py
A megrok.resource/tags/0.4/src/megrok/resource/__init__.py
D megrok.resource/tags/0.4/src/megrok/resource/components.py
A megrok.resource/tags/0.4/src/megrok/resource/components.py
D megrok.resource/tags/0.4/src/megrok/resource/configure.zcml
A megrok.resource/tags/0.4/src/megrok/resource/configure.zcml
D megrok.resource/tags/0.4/src/megrok/resource/directives.py
A megrok.resource/tags/0.4/src/megrok/resource/directives.py
D megrok.resource/tags/0.4/src/megrok/resource/ftests/ftesting.zcml
A megrok.resource/tags/0.4/src/megrok/resource/ftests/ftesting.zcml
D megrok.resource/tags/0.4/src/megrok/resource/interfaces.py
A megrok.resource/tags/0.4/src/megrok/resource/interfaces.py
D megrok.resource/tags/0.4/src/megrok/resource/meta.py
A megrok.resource/tags/0.4/src/megrok/resource/meta.py
D megrok.resource/tags/0.4/src/megrok/resource/traversal.py
A megrok.resource/tags/0.4/src/megrok/resource/url.py
D megrok.resource/tags/0.4/src/megrok/resource/utils.py
A megrok.resource/tags/0.4/src/megrok/resource/utils.py
-=-
Deleted: megrok.resource/tags/0.4/docs/HISTORY.txt
===================================================================
--- megrok.resource/trunk/docs/HISTORY.txt 2010-02-18 01:40:27 UTC (rev 109103)
+++ megrok.resource/tags/0.4/docs/HISTORY.txt 2010-02-18 13:41:28 UTC (rev 109133)
@@ -1,30 +0,0 @@
-Changelog
-=========
-
-0.3 (2009-12-23)
-----------------
-
-* The IResourcesIncluder interface is now automatically implemented
- by the class while using the `include` directive. This makes the
- whole system a lot more natural.
-
-* The interfaces have been moved to a dedicated module. If you used
- to import from `components`, please, correct your code.
-
-0.2 (2009-12-22)
-----------------
-
-* Added a ResourceLibrary component that is a mix between a Library
- and a GroupInclusion. It allows to declare both the Library and the
- Resources in a single class but impacts the re-usability.
-
-* Library now directly inherits from grokcore.view.DirectoryResource,
- to inherit the `get` method behavior. This inheritance was avoided
- to prevent grokkers clash (grokcore.view.DirectoryResource grokker
- doesn't have a fallback for the `name` directive.). Our grokker has
- now the priority and explicitly set the `name` directive value.
-
-0.1 (2009-12-21)
-----------------
-
-* Initial release
Copied: megrok.resource/tags/0.4/docs/HISTORY.txt (from rev 109132, megrok.resource/trunk/docs/HISTORY.txt)
===================================================================
--- megrok.resource/tags/0.4/docs/HISTORY.txt (rev 0)
+++ megrok.resource/tags/0.4/docs/HISTORY.txt 2010-02-18 13:41:28 UTC (rev 109133)
@@ -0,0 +1,41 @@
+Changelog
+=========
+
+0.4 (2010-02-18)
+----------------
+
+* Cleaned the dependencies : everything is declared as it
+ should. `zope.site` is now a main and not test dependency.
+
+* Renamed module "traversal" to "url", to describe accurately what the
+ module is about : url computation.
+
+* "mode" from `hurry.resource` is now exposed by the package.
+
+0.3 (2009-12-23)
+----------------
+
+* The IResourcesIncluder interface is now automatically implemented
+ by the class while using the `include` directive. This makes the
+ whole system a lot more natural.
+
+* The interfaces have been moved to a dedicated module. If you used
+ to import from `components`, please, correct your code.
+
+0.2 (2009-12-22)
+----------------
+
+* Added a ResourceLibrary component that is a mix between a Library
+ and a GroupInclusion. It allows to declare both the Library and the
+ Resources in a single class but impacts the re-usability.
+
+* Library now directly inherits from grokcore.view.DirectoryResource,
+ to inherit the `get` method behavior. This inheritance was avoided
+ to prevent grokkers clash (grokcore.view.DirectoryResource grokker
+ doesn't have a fallback for the `name` directive.). Our grokker has
+ now the priority and explicitly set the `name` directive value.
+
+0.1 (2009-12-21)
+----------------
+
+* Initial release
Deleted: megrok.resource/tags/0.4/setup.py
===================================================================
--- megrok.resource/trunk/setup.py 2010-02-18 01:40:27 UTC (rev 109103)
+++ megrok.resource/tags/0.4/setup.py 2010-02-18 13:41:28 UTC (rev 109133)
@@ -1,51 +0,0 @@
-# -*- coding: utf-8 -*-
-
-from setuptools import setup, find_packages
-from os.path import join
-
-version = '0.3'
-HISTORY = open(join("docs", "HISTORY.txt")).read()
-README = open(join("src", "megrok", "resource", "README.txt")).read()
-
-test_requires = [
- 'zope.app.testing',
- 'zope.app.zcmlfiles',
- 'zope.publisher',
- 'zope.site',
- ]
-
-setup(name='megrok.resource',
- version=version,
- description="Grok Resources based on hurry.resource",
- long_description="%s\n%s" % (README, HISTORY),
- keywords='Grok Resources',
- author='Souheil Chelfouh',
- author_email='trollfot at gmail.com',
- url='',
- license='ZPL 2.1',
- packages=find_packages('src'),
- package_dir = {'': 'src'},
- namespace_packages=['megrok'],
- include_package_data=True,
- zip_safe=False,
- install_requires=[
- 'martian',
- 'setuptools',
- 'grokcore.component',
- 'grokcore.view',
- 'hurry.resource >= 0.4.1',
- 'hurry.zoperesource',
- 'z3c.hashedresource',
- 'zope.app.publication',
- 'zope.component',
- 'zope.interface',
- 'zope.security',
- 'zope.traversing'
- ],
- extras_require={'test': test_requires},
- classifiers=[
- "Programming Language :: Python",
- "Topic :: Software Development :: Libraries :: Python Modules",
- "License :: OSI Approved :: Zope Public License",
- ],
- )
Copied: megrok.resource/tags/0.4/setup.py (from rev 109132, megrok.resource/trunk/setup.py)
===================================================================
--- megrok.resource/tags/0.4/setup.py (rev 0)
+++ megrok.resource/tags/0.4/setup.py 2010-02-18 13:41:28 UTC (rev 109133)
@@ -0,0 +1,54 @@
+# -*- coding: utf-8 -*-
+
+from setuptools import setup, find_packages
+from os.path import join
+
+version = '0.4'
+HISTORY = open(join("docs", "HISTORY.txt")).read()
+README = open(join("src", "megrok", "resource", "README.txt")).read()
+
+test_requires = [
+ 'zope.app.testing',
+ 'zope.app.zcmlfiles',
+ 'zope.publisher',
+ 'zope.securitypolicy',
+ 'zope.testbrowser',
+ 'zope.testing',
+ ]
+
+setup(name='megrok.resource',
+ version=version,
+ description="Grok Resources based on hurry.resource",
+ long_description="%s\n%s" % (README, HISTORY),
+ keywords='Grok Resources',
+ author='Souheil Chelfouh',
+ author_email='trollfot at gmail.com',
+ url='',
+ license='ZPL 2.1',
+ packages=find_packages('src'),
+ package_dir = {'': 'src'},
+ namespace_packages=['megrok'],
+ include_package_data=True,
+ zip_safe=False,
+ install_requires=[
+ 'martian',
+ 'setuptools',
+ 'grokcore.component',
+ 'grokcore.view',
+ 'hurry.resource >= 0.4.1',
+ 'hurry.zoperesource',
+ 'z3c.hashedresource',
+ 'zope.site',
+ 'zope.app.publication',
+ 'zope.component',
+ 'zope.interface',
+ 'zope.security',
+ 'zope.traversing'
+ ],
+ extras_require={'test': test_requires},
+ classifiers=[
+ "Programming Language :: Python",
+ "Topic :: Software Development :: Libraries :: Python Modules",
+ "License :: OSI Approved :: Zope Public License",
+ ],
+ )
Deleted: megrok.resource/tags/0.4/src/megrok/resource/__init__.py
===================================================================
--- megrok.resource/trunk/src/megrok/resource/__init__.py 2010-02-18 01:40:27 UTC (rev 109103)
+++ megrok.resource/tags/0.4/src/megrok/resource/__init__.py 2010-02-18 13:41:28 UTC (rev 109133)
@@ -1,8 +0,0 @@
-from grokcore.view import path
-from grokcore.component import name
-from hurry.resource import ResourceInclusion, GroupInclusion
-
-from megrok.resource.directives import include, use_hash, resource
-from megrok.resource.components import Library, ResourceLibrary
-from megrok.resource.interfaces import IResourcesIncluder, ILibrary
-from megrok.resource.utils import component_includes
Copied: megrok.resource/tags/0.4/src/megrok/resource/__init__.py (from rev 109131, megrok.resource/trunk/src/megrok/resource/__init__.py)
===================================================================
--- megrok.resource/tags/0.4/src/megrok/resource/__init__.py (rev 0)
+++ megrok.resource/tags/0.4/src/megrok/resource/__init__.py 2010-02-18 13:41:28 UTC (rev 109133)
@@ -0,0 +1,8 @@
+from grokcore.view import path
+from grokcore.component import name
+from hurry.resource import ResourceInclusion, GroupInclusion, mode
+
+from megrok.resource.directives import include, use_hash, resource
+from megrok.resource.components import Library, ResourceLibrary
+from megrok.resource.interfaces import IResourcesIncluder, ILibrary
+from megrok.resource.utils import component_includes
Deleted: megrok.resource/tags/0.4/src/megrok/resource/components.py
===================================================================
--- megrok.resource/trunk/src/megrok/resource/components.py 2010-02-18 01:40:27 UTC (rev 109103)
+++ megrok.resource/tags/0.4/src/megrok/resource/components.py 2010-02-18 13:41:28 UTC (rev 109133)
@@ -1,40 +0,0 @@
-# -*- coding: utf-8 -*-
-
-from grokcore.component import baseclass
-from grokcore.view import DirectoryResource
-from zope.component import getUtility
-from hurry.resource import ResourceInclusion, GroupInclusion
-from hurry.resource.interfaces import ICurrentNeededInclusions
-from megrok.resource.directives import resource
-from megrok.resource.interfaces import ILibrary
-
-
-class Library(DirectoryResource):
- """A library that exposes resources through an URL.
- This component is only used to declare a resources folder.
- """
- baseclass()
- name = None
-
-
-class ResourceLibrary(Library):
- """A library that behaves like a group inclusion.
- This prevents code redundance for simple libraries with
- few resources.
- """
- baseclass()
- depends = []
-
- @classmethod
- def need(cls):
- needed = getUtility(ICurrentNeededInclusions)()
- needed.need(cls)
-
- @classmethod
- def inclusions(cls):
- """Get all inclusions needed by this inclusion.
- """
- result = []
- for depend in cls.depends:
- result.extend(depend.inclusions())
- return result
Copied: megrok.resource/tags/0.4/src/megrok/resource/components.py (from rev 109131, megrok.resource/trunk/src/megrok/resource/components.py)
===================================================================
--- megrok.resource/tags/0.4/src/megrok/resource/components.py (rev 0)
+++ megrok.resource/tags/0.4/src/megrok/resource/components.py 2010-02-18 13:41:28 UTC (rev 109133)
@@ -0,0 +1,37 @@
+# -*- coding: utf-8 -*-
+
+from grokcore.component import baseclass
+from grokcore.view import DirectoryResource
+from zope.component import getUtility
+from hurry.resource.interfaces import ICurrentNeededInclusions
+
+
+class Library(DirectoryResource):
+ """A library that exposes resources through an URL.
+ This component is only used to declare a resources folder.
+ """
+ baseclass()
+ name = None
+
+
+class ResourceLibrary(Library):
+ """A library that behaves like a group inclusion.
+ This prevents code redundance for simple libraries with
+ few resources.
+ """
+ baseclass()
+ depends = []
+
+ @classmethod
+ def need(cls):
+ needed = getUtility(ICurrentNeededInclusions)()
+ needed.need(cls)
+
+ @classmethod
+ def inclusions(cls):
+ """Get all inclusions needed by this inclusion.
+ """
+ result = []
+ for depend in cls.depends:
+ result.extend(depend.inclusions())
+ return result
Deleted: megrok.resource/tags/0.4/src/megrok/resource/configure.zcml
===================================================================
--- megrok.resource/trunk/src/megrok/resource/configure.zcml 2010-02-18 01:40:27 UTC (rev 109103)
+++ megrok.resource/tags/0.4/src/megrok/resource/configure.zcml 2010-02-18 13:41:28 UTC (rev 109133)
@@ -1,15 +0,0 @@
-<configure
- xmlns="http://namespaces.zope.org/zope"
- xmlns:grok="http://namespaces.zope.org/grok"
- i18n_domain="zope">
-
- <include package="grokcore.component" file="meta.zcml" />
- <include package="grokcore.view" file="meta.zcml" />
- <include package="hurry.zoperesource" />
- <include package="z3c.hashedresource" />
-
- <grok:grok package=".event" />
- <grok:grok package=".traversal" />
- <grok:grok package=".meta" />
-
-</configure>
Copied: megrok.resource/tags/0.4/src/megrok/resource/configure.zcml (from rev 109131, megrok.resource/trunk/src/megrok/resource/configure.zcml)
===================================================================
--- megrok.resource/tags/0.4/src/megrok/resource/configure.zcml (rev 0)
+++ megrok.resource/tags/0.4/src/megrok/resource/configure.zcml 2010-02-18 13:41:28 UTC (rev 109133)
@@ -0,0 +1,15 @@
+<configure
+ xmlns="http://namespaces.zope.org/zope"
+ xmlns:grok="http://namespaces.zope.org/grok"
+ i18n_domain="zope">
+
+ <include package="grokcore.component" file="meta.zcml" />
+ <include package="grokcore.view" file="meta.zcml" />
+ <include package="hurry.zoperesource" />
+ <include package="z3c.hashedresource" />
+
+ <grok:grok package=".event" />
+ <grok:grok package=".url" />
+ <grok:grok package=".meta" />
+
+</configure>
Deleted: megrok.resource/tags/0.4/src/megrok/resource/directives.py
===================================================================
--- megrok.resource/trunk/src/megrok/resource/directives.py 2010-02-18 01:40:27 UTC (rev 109103)
+++ megrok.resource/tags/0.4/src/megrok/resource/directives.py 2010-02-18 13:41:28 UTC (rev 109133)
@@ -1,48 +0,0 @@
-# -*- coding: utf-8 -*-
-
-import martian
-from hurry.resource import ResourceInclusion
-from hurry.resource.interfaces import IInclusion
-from megrok.resource.interfaces import IResourcesIncluder
-from zope.interface import classImplements
-from zope.interface.declarations import addClassAdvisor, _implements_advice
-
-
-def validateInclusion(directive, value):
- if not IInclusion.providedBy(value):
- raise ValueError(
- "You can only include IInclusions components.")
-
-
-class use_hash(martian.Directive):
- scope = martian.CLASS_OR_MODULE
- store = martian.ONCE
- default = True
-
- def factory(self, value):
- return bool(value)
-
-
-class include(martian.Directive):
- scope = martian.CLASS
- store = martian.MULTIPLE
- validate = validateInclusion
-
- def factory(self, resource):
- addClassAdvisor(_resources_advice, depth=3)
- return resource
-
-
-def _resources_advice(cls):
- if include.bind().get(cls):
- if not IResourcesIncluder.implementedBy(cls):
- classImplements(cls, IResourcesIncluder)
- return cls
-
-
-class resource(martian.Directive):
- scope = martian.CLASS
- store = martian.MULTIPLE
-
- def factory(self, relpath, depends=None, bottom=False):
- return (relpath, depends, bottom)
Copied: megrok.resource/tags/0.4/src/megrok/resource/directives.py (from rev 109131, megrok.resource/trunk/src/megrok/resource/directives.py)
===================================================================
--- megrok.resource/tags/0.4/src/megrok/resource/directives.py (rev 0)
+++ megrok.resource/tags/0.4/src/megrok/resource/directives.py 2010-02-18 13:41:28 UTC (rev 109133)
@@ -0,0 +1,48 @@
+# -*- coding: utf-8 -*-
+
+import martian
+from hurry.resource import ResourceInclusion
+from hurry.resource.interfaces import IInclusion
+from megrok.resource.interfaces import IResourcesIncluder
+from zope.interface import classImplements
+from zope.interface.declarations import addClassAdvisor
+
+
+def validateInclusion(directive, value):
+ if not IInclusion.providedBy(value):
+ raise ValueError(
+ "You can only include IInclusions components.")
+
+
+class use_hash(martian.Directive):
+ scope = martian.CLASS_OR_MODULE
+ store = martian.ONCE
+ default = True
+
+ def factory(self, value):
+ return bool(value)
+
+
+class include(martian.Directive):
+ scope = martian.CLASS
+ store = martian.MULTIPLE
+ validate = validateInclusion
+
+ def factory(self, resource):
+ addClassAdvisor(_resources_advice, depth=3)
+ return resource
+
+
+def _resources_advice(cls):
+ if include.bind().get(cls):
+ if not IResourcesIncluder.implementedBy(cls):
+ classImplements(cls, IResourcesIncluder)
+ return cls
+
+
+class resource(martian.Directive):
+ scope = martian.CLASS
+ store = martian.MULTIPLE
+
+ def factory(self, relpath, depends=None, bottom=False):
+ return (relpath, depends, bottom)
Deleted: megrok.resource/tags/0.4/src/megrok/resource/ftests/ftesting.zcml
===================================================================
--- megrok.resource/trunk/src/megrok/resource/ftests/ftesting.zcml 2010-02-18 01:40:27 UTC (rev 109103)
+++ megrok.resource/tags/0.4/src/megrok/resource/ftests/ftesting.zcml 2010-02-18 13:41:28 UTC (rev 109133)
@@ -1,39 +0,0 @@
-<configure
- xmlns="http://namespaces.zope.org/zope"
- xmlns:grok="http://namespaces.zope.org/grok"
- i18n_domain="zope">
-
- <include package="grokcore.view" file="meta.zcml" />
- <include package="zope.app.zcmlfiles" file="meta.zcml" />
- <include package="zope.securitypolicy" file="meta.zcml" />
-
- <include package="zope.app.zcmlfiles" />
- <include package="zope.app.authentication" />
- <include package="grokcore.view" />
- <include package="megrok.resource" />
-
- <securityPolicy
- component="zope.securitypolicy.zopepolicy.ZopeSecurityPolicy"
- />
-
- <unauthenticatedPrincipal
- id="zope.anybody"
- title="Unauthenticated User"
- />
- <grant
- permission="zope.View"
- principal="zope.anybody"
- />
-
- <principal
- id="zope.mgr"
- title="Manager"
- login="mgr"
- password="mgrpw"
- />
-
- <role id="zope.Manager" title="Site Manager" />
- <grantAll role="zope.Manager" />
- <grant role="zope.Manager" principal="zope.mgr" />
-
-</configure>
Copied: megrok.resource/tags/0.4/src/megrok/resource/ftests/ftesting.zcml (from rev 109131, megrok.resource/trunk/src/megrok/resource/ftests/ftesting.zcml)
===================================================================
--- megrok.resource/tags/0.4/src/megrok/resource/ftests/ftesting.zcml (rev 0)
+++ megrok.resource/tags/0.4/src/megrok/resource/ftests/ftesting.zcml 2010-02-18 13:41:28 UTC (rev 109133)
@@ -0,0 +1,28 @@
+<configure
+ xmlns="http://namespaces.zope.org/zope"
+ xmlns:grok="http://namespaces.zope.org/grok"
+ i18n_domain="zope">
+
+ <include package="grokcore.view" file="meta.zcml" />
+ <include package="zope.app.zcmlfiles" file="meta.zcml" />
+ <include package="zope.securitypolicy" file="meta.zcml" />
+
+ <include package="zope.app.zcmlfiles" />
+ <include package="grokcore.view" />
+ <include package="megrok.resource" />
+
+ <securityPolicy
+ component="zope.securitypolicy.zopepolicy.ZopeSecurityPolicy"
+ />
+
+ <unauthenticatedPrincipal
+ id="zope.anybody"
+ title="Unauthenticated User"
+ />
+
+ <grant
+ permission="zope.View"
+ principal="zope.anybody"
+ />
+
+</configure>
Deleted: megrok.resource/tags/0.4/src/megrok/resource/interfaces.py
===================================================================
--- megrok.resource/trunk/src/megrok/resource/interfaces.py 2010-02-18 01:40:27 UTC (rev 109103)
+++ megrok.resource/tags/0.4/src/megrok/resource/interfaces.py 2010-02-18 13:41:28 UTC (rev 109133)
@@ -1,12 +0,0 @@
-from zope.interface import Interface, Attribute
-
-
-class IResourcesIncluder(Interface):
- """A publishable component that can include resources.
- """
-
-class ILibrary(Interface):
- """A library, including resources.
- """
- name = Attribute("The name of the library needed for URL computations")
-
Copied: megrok.resource/tags/0.4/src/megrok/resource/interfaces.py (from rev 109131, megrok.resource/trunk/src/megrok/resource/interfaces.py)
===================================================================
--- megrok.resource/tags/0.4/src/megrok/resource/interfaces.py (rev 0)
+++ megrok.resource/tags/0.4/src/megrok/resource/interfaces.py 2010-02-18 13:41:28 UTC (rev 109133)
@@ -0,0 +1,14 @@
+# -*- coding: utf-8 -*-
+
+from zope.interface import Interface, Attribute
+
+
+class IResourcesIncluder(Interface):
+ """A publishable component that can include resources.
+ """
+
+
+class ILibrary(Interface):
+ """A library, including resources.
+ """
+ name = Attribute("The name of the library needed for URL computations")
Deleted: megrok.resource/tags/0.4/src/megrok/resource/meta.py
===================================================================
--- megrok.resource/trunk/src/megrok/resource/meta.py 2010-02-18 01:40:27 UTC (rev 109103)
+++ megrok.resource/tags/0.4/src/megrok/resource/meta.py 2010-02-18 13:41:28 UTC (rev 109133)
@@ -1,54 +0,0 @@
-# -*- coding: utf-8 -*-
-
-import martian
-from grokcore import component
-from grokcore import view
-
-from grokcore.view.meta.directoryresource import DirectoryResourceGrokker
-from hurry.resource import ResourceInclusion, NeededInclusions
-from hurry.resource.interfaces import IInclusion
-from megrok.resource import Library, ILibrary, ResourceLibrary
-from megrok.resource import resource
-from zope.interface import alsoProvides
-
-
-def default_library_name(factory, module=None, **data):
- return factory.__name__.lower()
-
-
-class LibraryGrokker(martian.ClassGrokker):
- martian.component(Library)
- martian.priority(500)
- martian.directive(view.path)
- martian.directive(component.name, get_default=default_library_name)
-
- def execute(self, factory, config, name, path, **kw):
- # We set the name using the grok.name or the class name
- # We do that only if the attribute is not already set.
- if getattr(factory, 'name', None) is None:
- factory.name = name
-
- # We need to make sure the name is available for the Directory
- # Resource Grokker.
- if not component.name.bind().get(factory):
- component.name.set(factory, name)
-
- # We provide ILibrary. It is needed since classProvides
- # is not inherited.
- alsoProvides(factory, ILibrary)
- return True
-
-
-class ResourceLibraryGrokker(martian.ClassGrokker):
- martian.component(ResourceLibrary)
- martian.directive(resource, default=[])
-
- def create_resources(self, library, resources):
- for (filename, depends, bottom) in resources:
- yield ResourceInclusion(
- library, filename, depends=depends, bottom=bottom)
-
- def execute(self, factory, config, resource, **kw):
- factory.depends = list(self.create_resources(factory, resource))
- alsoProvides(factory, IInclusion)
- return True
Copied: megrok.resource/tags/0.4/src/megrok/resource/meta.py (from rev 109131, megrok.resource/trunk/src/megrok/resource/meta.py)
===================================================================
--- megrok.resource/tags/0.4/src/megrok/resource/meta.py (rev 0)
+++ megrok.resource/tags/0.4/src/megrok/resource/meta.py 2010-02-18 13:41:28 UTC (rev 109133)
@@ -0,0 +1,53 @@
+# -*- coding: utf-8 -*-
+
+import martian
+from grokcore import component
+from grokcore import view
+
+from hurry.resource import ResourceInclusion
+from hurry.resource.interfaces import IInclusion
+from megrok.resource import Library, ILibrary, ResourceLibrary
+from megrok.resource import resource
+from zope.interface import alsoProvides
+
+
+def default_library_name(factory, module=None, **data):
+ return factory.__name__.lower()
+
+
+class LibraryGrokker(martian.ClassGrokker):
+ martian.component(Library)
+ martian.priority(500)
+ martian.directive(view.path)
+ martian.directive(component.name, get_default=default_library_name)
+
+ def execute(self, factory, config, name, path, **kw):
+ # We set the name using the grok.name or the class name
+ # We do that only if the attribute is not already set.
+ if getattr(factory, 'name', None) is None:
+ factory.name = name
+
+ # We need to make sure the name is available for the Directory
+ # Resource Grokker.
+ if not component.name.bind().get(factory):
+ component.name.set(factory, name)
+
+ # We provide ILibrary. It is needed since classProvides
+ # is not inherited.
+ alsoProvides(factory, ILibrary)
+ return True
+
+
+class ResourceLibraryGrokker(martian.ClassGrokker):
+ martian.component(ResourceLibrary)
+ martian.directive(resource, default=[])
+
+ def create_resources(self, library, resources):
+ for (filename, depends, bottom) in resources:
+ yield ResourceInclusion(
+ library, filename, depends=depends, bottom=bottom)
+
+ def execute(self, factory, config, resource, **kw):
+ factory.depends = list(self.create_resources(factory, resource))
+ alsoProvides(factory, IInclusion)
+ return True
Deleted: megrok.resource/tags/0.4/src/megrok/resource/traversal.py
===================================================================
--- megrok.resource/trunk/src/megrok/resource/traversal.py 2010-02-18 01:40:27 UTC (rev 109103)
+++ megrok.resource/tags/0.4/src/megrok/resource/traversal.py 2010-02-18 13:41:28 UTC (rev 109133)
@@ -1,27 +0,0 @@
-# -*- coding: utf-8 -*-
-
-import megrok.resource
-import grokcore.component as grok
-
-from zope.component import getAdapter
-from zope.site.hooks import getSite
-from zope.traversing.browser.absoluteurl import absoluteURL
-
-from hurry.resource.interfaces import ILibraryUrl
-from hurry.zoperesource.zopesupport import getRequest
-from z3c.hashedresource.interfaces import IResourceContentsHash
-
-
- at grok.implementer(ILibraryUrl)
- at grok.adapter(megrok.resource.ILibrary)
-def library_url(library):
- request = getRequest()
- use_hash = megrok.resource.use_hash.bind().get(library)
- base_url = absoluteURL(getSite(), request)
-
- if use_hash is True:
- resource = getAdapter(request, name=library.name)
- hashpath = IResourceContentsHash(resource)
- return '%s/@@/++noop++%s/%s' % (base_url, hashpath, library.name)
-
- return '%s/@@/%s' % (base_url, library.name)
Copied: megrok.resource/tags/0.4/src/megrok/resource/url.py (from rev 109131, megrok.resource/trunk/src/megrok/resource/url.py)
===================================================================
--- megrok.resource/tags/0.4/src/megrok/resource/url.py (rev 0)
+++ megrok.resource/tags/0.4/src/megrok/resource/url.py 2010-02-18 13:41:28 UTC (rev 109133)
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+
+import megrok.resource
+import grokcore.component as grok
+
+from zope.component import getAdapter
+from zope.site.hooks import getSite
+from zope.traversing.browser.absoluteurl import absoluteURL
+
+from hurry.resource.interfaces import ILibraryUrl
+from hurry.zoperesource.zopesupport import getRequest
+from z3c.hashedresource.interfaces import IResourceContentsHash
+
+
+ at grok.implementer(ILibraryUrl)
+ at grok.adapter(megrok.resource.ILibrary)
+def library_url(library):
+ request = getRequest()
+ use_hash = megrok.resource.use_hash.bind().get(library)
+ base_url = absoluteURL(getSite(), request)
+
+ if use_hash is True:
+ resource = getAdapter(request, name=library.name)
+ hashpath = IResourceContentsHash(resource)
+ return '%s/@@/++noop++%s/%s' % (base_url, hashpath, library.name)
+
+ return '%s/@@/%s' % (base_url, library.name)
Deleted: megrok.resource/tags/0.4/src/megrok/resource/utils.py
===================================================================
--- megrok.resource/trunk/src/megrok/resource/utils.py 2010-02-18 01:40:27 UTC (rev 109103)
+++ megrok.resource/tags/0.4/src/megrok/resource/utils.py 2010-02-18 13:41:28 UTC (rev 109133)
@@ -1,16 +0,0 @@
-#!/usr/bin/python
-# -*- coding: utf-8 -*-
-
-from martian.util import isclass
-from megrok.resource import include, IResourcesIncluder
-from zope.interface import classImplements, alsoProvides
-
-def component_includes(component, *resources):
- if isclass(component):
- if not IResourcesIncluder.implementedBy(component):
- classImplements(component, IResourcesIncluder)
- else:
- if not IResourcesIncluder.providedBy(component):
- alsoProvides(component, IResourcesIncluder)
-
- include.set(component, resources)
Copied: megrok.resource/tags/0.4/src/megrok/resource/utils.py (from rev 109131, megrok.resource/trunk/src/megrok/resource/utils.py)
===================================================================
--- megrok.resource/tags/0.4/src/megrok/resource/utils.py (rev 0)
+++ megrok.resource/tags/0.4/src/megrok/resource/utils.py 2010-02-18 13:41:28 UTC (rev 109133)
@@ -0,0 +1,16 @@
+# -*- coding: utf-8 -*-
+
+from martian.util import isclass
+from megrok.resource import include, IResourcesIncluder
+from zope.interface import classImplements, alsoProvides
+
+
+def component_includes(component, *resources):
+ if isclass(component):
+ if not IResourcesIncluder.implementedBy(component):
+ classImplements(component, IResourcesIncluder)
+ else:
+ if not IResourcesIncluder.providedBy(component):
+ alsoProvides(component, IResourcesIncluder)
+
+ include.set(component, resources)
More information about the checkins
mailing list