diff rhodecode/lib/app_globals.py @ 547:1e757ac98988

renamed project to rhodecode
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 06 Oct 2010 03:18:16 +0200
parents pylons_app/lib/app_globals.py@0d4fceb91c9c
children 05528ad948c4
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rhodecode/lib/app_globals.py	Wed Oct 06 03:18:16 2010 +0200
@@ -0,0 +1,31 @@
+"""The application's Globals object"""
+
+from beaker.cache import CacheManager
+from beaker.util import parse_cache_config_options
+from vcs.utils.lazy import LazyProperty
+
+class Globals(object):
+    """Globals acts as a container for objects available throughout the
+    life of the application
+
+    """
+
+    def __init__(self, config):
+        """One instance of Globals is created during application
+        initialization and is available during requests via the
+        'app_globals' variable
+
+        """
+        self.cache = CacheManager(**parse_cache_config_options(config))
+        self.available_permissions = None   # propagated after init_model
+        self.baseui = None                  # propagated after init_model        
+        
+    @LazyProperty
+    def paths(self):
+        if self.baseui:
+            return self.baseui.configitems('paths')
+    
+    @LazyProperty
+    def base_path(self):
+        if self.baseui:
+            return self.paths[0][1].replace('*', '')