[Checkins] SVN: megrok.resourceviewlet/trunk/ Preparing release 0.1

Souheil CHELFOUH souheil at chelfouh.com
Thu Dec 24 10:02:50 EST 2009


Log message for revision 107053:
  Preparing release 0.1

Changed:
  U   megrok.resourceviewlet/trunk/docs/HISTORY.txt
  U   megrok.resourceviewlet/trunk/setup.py
  U   megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/README.txt
  U   megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/__init__.py
  U   megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/components.py
  U   megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/ftests/ftesting.zcml
  U   megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/ftests/test_general.py

-=-
Modified: megrok.resourceviewlet/trunk/docs/HISTORY.txt
===================================================================
--- megrok.resourceviewlet/trunk/docs/HISTORY.txt	2009-12-24 11:18:05 UTC (rev 107052)
+++ megrok.resourceviewlet/trunk/docs/HISTORY.txt	2009-12-24 15:02:50 UTC (rev 107053)
@@ -0,0 +1,7 @@
+Changelog
+=========
+
+0.1 (2009-12-24)
+----------------
+
+* Initial release

Modified: megrok.resourceviewlet/trunk/setup.py
===================================================================
--- megrok.resourceviewlet/trunk/setup.py	2009-12-24 11:18:05 UTC (rev 107052)
+++ megrok.resourceviewlet/trunk/setup.py	2009-12-24 15:02:50 UTC (rev 107053)
@@ -10,26 +10,30 @@
 readme = open(join('src', 'megrok', 'resourceviewlet', 'README.txt')).read()
 
 test_requires = [
+    'grokcore.view',
     'zope.app.testing',
     'zope.app.zcmlfiles',
+    'zope.contentprovider',
+    'zope.testbrowser',
+    'zope.testing',
     ]
 
-setup(name = name,
-      version = version,
-      description = 'Grok component to include resources.',
-      long_description = readme + '\n\n' + history,
-      keywords = 'Grok Zope3 CMS Resources',
-      author = 'Souheil Chelfouh',
-      author_email = 'trollfot at gmail.com',
-      url = 'http://tracker.trollfot.org/',
-      download_url = '',
-      license = 'GPL',
+setup(name=name,
+      version=version,
+      description='Grok component to include resources.',
+      long_description=readme + '\n\n' + history,
+      keywords='Grok Zope3 CMS Resources',
+      author='Souheil Chelfouh',
+      author_email='trollfot at gmail.com',
+      url='http://tracker.trollfot.org/',
+      download_url='',
+      license='GPL',
       packages=find_packages('src', exclude=['ez_setup']),
       package_dir={'': 'src'},
-      namespace_packages = ['megrok'],
-      include_package_data = True,
-      platforms = 'Any',
-      zip_safe = False,
+      namespace_packages=['megrok'],
+      include_package_data=True,
+      platforms='Any',
+      zip_safe=False,
       install_requires=[
           'hurry.resource',
           'grokcore.viewlet',
@@ -40,7 +44,7 @@
           'zope.viewlet',
           ],
       extras_require={'test': test_requires},
-      classifiers = [
+      classifiers=[
           'Development Status :: 4 - Beta',
           'Environment :: Web Environment',
           'Framework :: Zope3',

Modified: megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/README.txt
===================================================================
--- megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/README.txt	2009-12-24 11:18:05 UTC (rev 107052)
+++ megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/README.txt	2009-12-24 15:02:50 UTC (rev 107053)
@@ -2,7 +2,9 @@
 megrok.resourceviewlet
 ======================
 
-`megrok.resourceviewlet`
+`megrok.resourceviewlet` is a package meant to include resources
+using layer, context and view discriminations (site-wide resources
+like javascripts or CSS or content-centric resources).
 
 Setup
 =====
@@ -20,6 +22,8 @@
 Library
 =======
 
+We first declare a resource. We'll include it in our page::
+
   >>> from megrok import resource
   >>> class SomeResource(resource.ResourceLibrary):
   ...     resource.path('ftests/resources')
@@ -32,12 +36,13 @@
 Components
 ==========
 
-View
-----
+To demonstrate our resource viewlet, we first need a page to
+render. This page contains a content provider named 'resources'::
 
   >>> from zope.interface import Interface
 
   >>> class Index(view.View):
+  ...   view.require("zope.Public")
   ...   view.context(Interface)
   ...
   ...   template = view.PageTemplate("""<html><head>
@@ -51,12 +56,15 @@
 Manager
 -------
 
-  >>> from megrok.resourceviewlet import InclusionViewletManager
+We now register a content provider named 'resources'. It will be a
+ResourcesManager. An ResourcesManager is a component
+dedicated in rendering ResourceViewlets::
 
-  >>> class Resources(InclusionViewletManager):
+  >>> from megrok.resourceviewlet import ResourcesManager
+
+  >>> class Resources(ResourcesManager):
   ...   viewlet.context(Interface)
-  ...   viewlet.view(Index)
-
+ 
   >>> grok.testing.grok_component('resources', Resources)
   True
 
@@ -64,20 +72,30 @@
 Viewlet
 -------
 
+Now, we register a ResourceViewlet, including our resource. The
+declaration is very straightforward::
+
   >>> from megrok.resourceviewlet import ResourceViewlet
 
   >>> class SomeViewlet(ResourceViewlet):
-  ...   viewlet.viewletmanager(Resources)
   ...   viewlet.context(Interface)
   ...   resources = [SomeResource]
 
   >>> grok.testing.grok_component('viewlet', SomeViewlet)
   True
 
+By default, a ResourceViewlet is registered for an instance of
+ResourcesManager. Most of the time, a page contains only one of
+these content providers. If it's not the case, make sure to provide
+your own `viewletmanager` directive value.
 
+
 Rendering
----------
+=========
 
+Rendering our page should render the ResourcesManager and
+therefore, include our resource::
+
   >>> browser.open('http://localhost/@@index')
   >>> print browser.contents
   <html><head>
@@ -85,3 +103,5 @@
       type="text/javascript"
       src="http://localhost/@@/++noop++.../someresource/thing.js"></script>
   </head></html>
+
+It works ! Enjoy.

Modified: megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/__init__.py
===================================================================
--- megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/__init__.py	2009-12-24 11:18:05 UTC (rev 107052)
+++ megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/__init__.py	2009-12-24 15:02:50 UTC (rev 107053)
@@ -1,2 +1 @@
-from megrok.resourceviewlet.components import (
-    IResourceViewlet, InclusionViewletManager, ResourceViewlet)
+from megrok.resourceviewlet.components import ResourcesManager, ResourceViewlet

Modified: megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/components.py
===================================================================
--- megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/components.py	2009-12-24 11:18:05 UTC (rev 107052)
+++ megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/components.py	2009-12-24 15:02:50 UTC (rev 107053)
@@ -1,12 +1,9 @@
 # -*- coding: utf-8 -*-
 
-import grokcore.component as grok
+import grokcore.viewlet as grok
 
 from grokcore.viewlet.components import ViewletManager, Viewlet
-from grokcore.viewlet.interfaces import IViewletManager
 from hurry.resource.interfaces import IInclusion
-
-from zope.interface import Interface
 from zope.schema import List, Object
 from zope.schema.fieldproperty import FieldProperty
 from zope.viewlet.interfaces import IViewlet
@@ -17,20 +14,17 @@
     """A viewlet which sole purpose is to include resources.
     """
     resources = List(
-        title = u"Resources to be included",
-        required = True,
-        value_type = Object(
-            schema = IInclusion,
-            )
-        )
-    
+        title=u"Resources to be included",
+        required=True,
+        value_type=Object(schema=IInclusion))
+
     def render(self):
-        """Calling this method will 'need' the resources.
+        """Calling this method will include the resources.
         The return value will *not* be taken in consideration.
         """
 
 
-class InclusionViewletManager(ViewletManager):
+class ResourcesManager(ViewletManager):
     """A manager which sole purpose is to render ResourceViewlets.
     """
     grok.baseclass()
@@ -63,6 +57,8 @@
     """
     grok.baseclass()
     grok.implements(IResourceViewlet)
+    grok.viewletmanager(ResourcesManager)
+
     resources = FieldProperty(IResourceViewlet['resources'])
 
     def __init__(self, context, request, view, manager):

Modified: megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/ftests/ftesting.zcml
===================================================================
--- megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/ftests/ftesting.zcml	2009-12-24 11:18:05 UTC (rev 107052)
+++ megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/ftests/ftesting.zcml	2009-12-24 15:02:50 UTC (rev 107053)
@@ -6,27 +6,11 @@
   <include package="grokcore.view" file="meta.zcml" />
   <include package="grokcore.viewlet" file="meta.zcml" />
   <include package="zope.app.zcmlfiles" file="meta.zcml" />
-  <include package="zope.securitypolicy" file="meta.zcml" />
 
   <include package="zope.contentprovider" />
   <include package="zope.app.zcmlfiles" />
-  <include package="zope.app.authentication" />
   <include package="grokcore.view" />
   <include package="grokcore.viewlet" />
   <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>

Modified: megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/ftests/test_general.py
===================================================================
--- megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/ftests/test_general.py	2009-12-24 11:18:05 UTC (rev 107052)
+++ megrok.resourceviewlet/trunk/src/megrok/resourceviewlet/ftests/test_general.py	2009-12-24 15:02:50 UTC (rev 107053)
@@ -2,9 +2,8 @@
 
 import os.path
 import unittest
-from zope.app.testing import functional
 from zope.testing import doctest, module
-from zope.publisher.browser import TestRequest
+from zope.app.testing import functional
 from zope.app.testing.functional import ZCMLLayer
 
 ftesting_zcml = os.path.join(os.path.dirname(__file__), 'ftesting.zcml')



More information about the checkins mailing list