diff -r 5565d94da522 -r d6a8258bd90e lib/request.py --- a/lib/request.py Fri Feb 06 20:49:29 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,73 +0,0 @@ - -import os.path - -def get_site_url (script_name) : - """ - Get the URL that points to the site root (i.e. where style.css is) using the given value of SCRIPT_NAME - - /foo/bar/quux.py -> /foo - /~terom/qmsk.net/site/index.py -> /~terom/qmsk.net - / -> "" - None -> "" - """ - - if script_name : - return os.path.dirname(os.path.dirname(script_name)).rstrip("/") - else : - return "" - -def get_page_path (path_info, default) : - """ - Get the path of the page that was requested, or the given default is empty/invalid. - The path will never begin with an /. - - /quux -> quux - / -> - None -> - """ - - if path_info : - # remove prefixed slashes - path_info = path_info.lstrip('/') - - if path_info : - return path_info - else : - return default - - -class Request (object) : - # The name of the site itself, this can be used to reference e.g. style.css - site_url = None - - # The page root url, for links to pages - page_root = None - - # The full path to the requested page - page_path = None - - def __init__ (self, environ, default_page='main') : - self.site_url = get_site_url(environ.get("SCRIPT_NAME")) - self.page_root = environ.get("SCRIPT_NAME") - self.page_path = get_page_path(environ.get("PATH_INFO"), default_page) - - def page_name_parts (self) : - """ - Returns a list of page name components - """ - - return self.page_path.split('/') - - def page_name_prefixes (self) : - """ - Iterate over the components of the page name, yielding (prefix, suffix) pairs - """ - - prefix = self.page_name_parts() - suffix = [] - - while prefix : - yield ('/'.join(prefix), '/'.join(suffix)) - - suffix.insert(0, prefix.pop(-1)) -