{ "info": { "author": "Souheil Chelfouh", "author_email": "trollfot@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Zope3", "Intended Audience :: Other Audience", "License :: OSI Approved :: Zope Public License", "Operating System :: OS Independent", "Programming Language :: Python" ], "description": "======================\nmegrok.resourceviewlet\n======================\n\n`megrok.resourceviewlet` is a package meant to include resources\nusing layer, context and view discriminations.\n\n\nSetup\n=====\n\nLet's import and init the necessary work environment::\n\n >>> import grokcore.component as grok\n >>> from grokcore import view, viewlet\n >>> from zope.app.wsgi.testlayer import Browser\n\n >>> browser = Browser()\n >>> browser.handleErrors = False\n\n\nLibrary\n=======\n\nWe first declare a resource. We'll include it in our page::\n\n >>> from fanstatic import Resource, Library\n >>> myLibrary = Library('test_library', 'ftests/resources')\n >>> Thing = Resource(myLibrary, 'thing.js')\n\nThis step is done by an entry point. For the testing, we do it by hand::\n\n >>> from zope.fanstatic.zcml import create_factory\n >>> from zope.component import getGlobalSiteManager\n >>> from zope.publisher.interfaces.browser import IBrowserRequest\n >>> from zope.interface import Interface\n\n >>> resource_factory = create_factory(myLibrary)\n >>> getGlobalSiteManager().registerAdapter(\n ... resource_factory, (IBrowserRequest,), Interface, myLibrary.name)\n\n\nComponents\n==========\n\nTo demonstrate our resource viewlet, we first need a page to\nrender. This page contains a content provider named 'resources'::\n\n >>> from zope.interface import Interface\n\n >>> class Index(view.View):\n ... view.require(\"zope.Public\")\n ... view.context(Interface)\n ...\n ... template = view.PageTemplate(\"\"\"\n ... \n ... \"\"\")\n\n >>> grok.testing.grok_component('index', Index)\n True\n\n\nManager\n-------\n\nWe now register a content provider named 'resources'. It will be a\nResourcesManager. An ResourcesManager is a component\ndedicated in rendering ResourceViewlets::\n\n >>> from megrok.resourceviewlet import ResourcesManager\n\n >>> class Resources(ResourcesManager):\n ... viewlet.context(Interface)\n \n >>> grok.testing.grok_component('resources', Resources)\n True\n\n\nViewlet\n-------\n\nNow, we register a ResourceViewlet, including our resource. The\ndeclaration is very straightforward::\n\n >>> from megrok.resourceviewlet import ResourceViewlet\n\n >>> class SomeViewlet(ResourceViewlet):\n ... viewlet.context(Interface)\n ... resources = [Thing]\n\n >>> grok.testing.grok_component('viewlet', SomeViewlet)\n True\n\nBy default, a ResourceViewlet is registered for an instance of\nResourcesManager. Most of the time, a page contains only one of\nthese content providers. If it's not the case, make sure to provide\nyour own `viewletmanager` directive value.\n\n\nRendering\n=========\n\nRendering our page should render the ResourcesManager and\ntherefore, include our resource::\n\n >>> browser.open('http://localhost/@@index')\n >>> print browser.contents\n \n \n \n\nIt works ! Enjoy.\n\n\nChangelog\n=========\n\n0.2 (2011-01-18)\n----------------\n\n* ``megrok.resourceviewlet`` now works and depends on ``fanstatic``.\n* Dependencies has been greatly reduced.\n\n0.1 (2009-12-24)\n----------------\n\n* Initial release", "description_content_type": null, "docs_url": null, "download_url": "http://pypi.python.org/pypi/megrok.resourceviewlet", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://pypi.python.org/pypi/megrok.resourceviewlet", "keywords": "Grok resources fanstatic", "license": "ZPL 2.1", "maintainer": null, "maintainer_email": null, "name": "megrok.resourceviewlet", "package_url": "https://pypi.org/project/megrok.resourceviewlet/", "platform": "Any", "project_url": "https://pypi.org/project/megrok.resourceviewlet/", "project_urls": { "Download": "http://pypi.python.org/pypi/megrok.resourceviewlet", "Homepage": "http://pypi.python.org/pypi/megrok.resourceviewlet" }, "release_url": "https://pypi.org/project/megrok.resourceviewlet/0.2/", "requires_dist": null, "requires_python": null, "summary": "Grok components to include resources.", "version": "0.2" }, "last_serial": 794654, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "d6e1af81f79255575b5e11fe0d9d2ad3", "sha256": "2263b79209b2b452770abd894d1c1fac15716e831bed785c1ab418429be2b6fb" }, "downloads": -1, "filename": "megrok.resourceviewlet-0.1.tar.gz", "has_sig": false, "md5_digest": "d6e1af81f79255575b5e11fe0d9d2ad3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5527, "upload_time": "2009-12-24T16:06:09", "url": "https://files.pythonhosted.org/packages/eb/55/eef998ba12d9a82d3f3f2000e68ebb325946dc3dff9e14d5890d7537a962/megrok.resourceviewlet-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "fe77fa2746a1c3e236b5baa26e9783d7", "sha256": "bad77f62df07eadcb00989770d19bb6d56e071547e79f5bc51d8f1a115634a4d" }, "downloads": -1, "filename": "megrok.resourceviewlet-0.2.tar.gz", "has_sig": false, "md5_digest": "fe77fa2746a1c3e236b5baa26e9783d7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7176, "upload_time": "2011-01-18T19:23:51", "url": "https://files.pythonhosted.org/packages/93/b6/9eb562ba1579afffab9bc45ff1098b1dfdf105c46bb5343df2482e414dd1/megrok.resourceviewlet-0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "fe77fa2746a1c3e236b5baa26e9783d7", "sha256": "bad77f62df07eadcb00989770d19bb6d56e071547e79f5bc51d8f1a115634a4d" }, "downloads": -1, "filename": "megrok.resourceviewlet-0.2.tar.gz", "has_sig": false, "md5_digest": "fe77fa2746a1c3e236b5baa26e9783d7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7176, "upload_time": "2011-01-18T19:23:51", "url": "https://files.pythonhosted.org/packages/93/b6/9eb562ba1579afffab9bc45ff1098b1dfdf105c46bb5343df2482e414dd1/megrok.resourceviewlet-0.2.tar.gz" } ] }