paulb@601 | 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
paulb@601 | 2 | <html xmlns="http://www.w3.org/1999/xhtml"><head><meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type" /> |
paulb@601 | 3 | |
paulb@601 | 4 | <title>Selectors - Components for Dispatching to Resources</title><meta name="generator" content="amaya 8.1a, see http://www.w3.org/Amaya/" /> |
paulb@601 | 5 | <link href="styles.css" rel="stylesheet" type="text/css" /></head> |
paulb@601 | 6 | <body> |
paulb@601 | 7 | <h1>Selectors - Components for Dispatching to Resources</h1> |
paulb@601 | 8 | <p>The <code>Selectors</code> module provides classes (although |
paulb@601 | 9 | currently only one class is supplied) which act as standard WebStack |
paulb@601 | 10 | resources, but which attempt to "select" other resources, dispatch each |
paulb@601 | 11 | request to those resources, and to cause various side-effects, mostly |
paulb@601 | 12 | on the attributes stored on the transaction object. These "selector" |
paulb@601 | 13 | classes behave those in the <code>ResourceMap</code> module, but aspire to be more generally applicable.</p><h2>Introducing PathSelector</h2><p>In |
paulb@601 | 14 | non-trivial applications, it is often desirable to know the path or URL |
paulb@601 | 15 | to a particular resource, especially the "root" resource under which |
paulb@601 | 16 | the application or one of its components may reside. The <code>PathSelector</code> |
paulb@601 | 17 | class can be instantiated and be made to refer to a resource, recording |
paulb@601 | 18 | such path or URL details in an attribute for later inspection.</p><div class="WebStack"> |
paulb@601 | 19 | <h3>WebStack API - The PathSelector Class</h3> |
paulb@601 | 20 | |
paulb@601 | 21 | <p>The <code>PathSelector</code> |
paulb@601 | 22 | class (found in the |
paulb@601 | 23 | <code>WebStack.Resources.Selectors</code> module) wraps resource |
paulb@601 | 24 | objects whose location (as indicated by a path or URL) should be |
paulb@601 | 25 | recorded as an attribute on the current transaction. The most common |
paulb@601 | 26 | use of the class is to record the "root" resource's location, |
paulb@601 | 27 | and this would be done as follows:</p><pre>def get_site_map():<br /> return PathSelector(MyResource())</pre><p>Here, the <code>get_site_map</code> |
paulb@601 | 28 | function (as described in the <a href="deploying.html">"Deploying a WebStack Application"</a> document) would provide a <code>PathSelector</code> object instead of an instance of the <code>MyResource</code> class. However, the side-effect of combining these two resources would be the availability of an attribute named <code>root</code> on the transaction object. Thus, the "root" <code>MyResource</code> |
paulb@601 | 29 | object and, indeed, all resource objects visited after this side-effect |
paulb@601 | 30 | has occurred will have access to the "root" path or URL information.</p><h4>Further Reading</h4><p>The <a href="../apidocs/public/WebStack.Resources.Selectors.PathSelector-class.html">API documentation</a> for the <code>PathSelector</code> |
paulb@601 | 31 | class provides additional information.</p></div></body></html> |