Metadata-Version: 1.0
Name: bda.bfg.tile
Version: 1.0
Summary: Handle web application parts as tiles.
Home-page: https://svn.bluedynamics.net/svn/internal/bda.tile
Author: BlueDynamics Alliance
Author-email: dev@bluedynamics.com
License: GNU General Public Licence
Description: A tile is a piece of web application, i.e. a form, a navigation, etc.
        
        Splitting your application in such small and logic application parts makes it
        easy to re-use this application, simplifies application ajaxification and
        the use of same application parts in different manners.
        
        Imports.:
        
        >>> from bda.bfg.tile import Tile
        >>> from bda.bfg.tile import TileRenderer
        >>> from bda.bfg.tile import registerTile
        >>> from bda.bfg.tile import tile
        
        We need some dummies as model and request.:
        
        >>> class Model(object): pass
        >>> model = Model()
        >>> from repoze.bfg.request import DEFAULT_REQUEST_FACTORIES
        >>> request = DEFAULT_REQUEST_FACTORIES[None]['factory'](environ={})
        
        The pure Tile itself. Normally you do not create this directly, this is done
        due registration, see below.:
        
        >>> mytile = Tile('testdata/tile1.pt', None)
        >>> mytile(model,  request)
        u'<span>Tile One</span>'
        
        Register a tile using the prior template testtemplate. When no object is given,
        the default tile is instanciated as above.:
        
        >>> registerTile('tileone', 'testdata/tile1.pt')
        
        Render the already registered tile.:
        
        >>> TileRenderer(model, request)('tileone')
        u'<span>Tile One</span>'
        
        Now the decorator - level=1 is needed for the doctest only to reduce the module
        level.:
        
        >>> @tile('tiletwo', 'testdata/tile2.pt', level=1)
        ... class Tile2(Tile):
        ...     data = u'custom'
        >>> TileRenderer(model, request)('tiletwo')
        u'<span>Tile Two: <b><span>Tile One</span></b></span>'
        
        You can define an attribute which is responsible to render the tile instead of
        defining a template, or omit even attribute kw argument, then the attribute
        ``render`` is called as default rendering attribute.:
        
        >>> @tile('attrtile')
        ... class Tile2(Tile):
        ...     def render(self):
        ...         return u'<h1>Rendered via attribute call</h1>'
        >>> TileRenderer(model, request)('attrtile')
        u'<h1>Rendered via attribute call</h1>'
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Web Environment
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
