skip to navigation
skip to content

hurry.zoperesource 0.3

hurry.resource integration for Zope.

Downloads ↓

Latest Version: 0.8

Zope integration for hurry.resource

This package provides Zope integration for hurry.resource. This means three taking care of three things:

  • maintain the needed resources throughout the request/response cycle.
  • know how to make a URL to a resource.
  • make so that resource references are automatically inserted in the HTML header.

This library fulfills these conditions for a Zope 3/Grok setup.

We'll run through a few tests to demonstrate it. Note that the real code being tested is not in this document itself, but in the views described in ftesting.zcml.

We need to be in a request to make this work, so let's up a request to a page we have set up in ftesting.zcml that should cause the inclusion of a single resource in its header:

>>> from zope.testbrowser.testing import Browser
>>> browser = Browser()
>>> browser.handleErrors = False
>>> browser.open('http://localhost/hurry.zoperesource.test_single')
>>> print browser.contents
<html>
<head>
    <script type="text/javascript" src="http://localhost/@@/foo/a.js"></script>
<BLANKLINE>
</head>
<body>
<p>the widget HTML itself</p>
</body>
</html>

If a resource happens to need another resource, this resource is also automatically included:

>>> browser.open('http://localhost/hurry.zoperesource.test_multiple')
>>> print browser.contents
<html>
<head>
    <script type="text/javascript" src="http://localhost/@@/foo/a.js"></script>
  <script type="text/javascript" src="http://localhost/@@/foo/b.js"></script>
<BLANKLINE>
</head>
<body>
<p>the widget HTML itself</p>
</body>
</html>

Let's force all javascript resources to be forced to be included at the bottom now, just before the </body> tag:

>>> browser.open('http://localhost/hurry.zoperesource.test_bottom')
>>> print browser.contents
<html>
<head>
</head>
<body>
<p>the widget HTML itself</p>
<script type="text/javascript" src="http://localhost/@@/foo/a.js"></script>
<script type="text/javascript" src="http://localhost/@@/foo/b.js"></script></body>
</html>

CHANGES

0.3 (2008-12-05)

  • resource.need() needed a request object set up in order to function. This is rather annoying in tests, which often don't have a request object set up. We now instead return a dummy NeededResources object in such cases (which will then be thrown away). As a result, it's always safe to call resource.need() during tests, though if no request can be found it will have no effect.

0.2 (2008-10-13)

  • Add support for rendering fragments at the bottom of the page. When you call hurry.resource.bottom resources which are marked bottom-safe will be rendered at the bottom of the web page instead of in the <head> section. When you call hurry.resource.bottom(force=True), all .js resources will be included at the bottom.

0.1 (2008-10-11)

  • Initial public release.

Download

 
File Type Py Version Uploaded on Size # downloads
hurry.zoperesource-0.3.tar.gz (md5) Source 2008-12-05 5KB 1026