view rhodecode/lib/app_globals.py @ 671:bee56f209c40 rhodecode-0.0.1.0.1

fixes few bugs - fixed #53 python2.5 incompatible enumerate calls - fixed #52 disable mercurial extension for web - fixed #51 deleting repositories don't delete it's dependent objects - small css updated
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 10 Nov 2010 01:14:44 +0100
parents 1e757ac98988
children 05528ad948c4
line wrap: on
line source

"""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('*', '')