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