summaryrefslogtreecommitdiff
path: root/_sources/recipes/inheritance.txt
diff options
context:
space:
mode:
Diffstat (limited to '_sources/recipes/inheritance.txt')
-rw-r--r--_sources/recipes/inheritance.txt62
1 files changed, 0 insertions, 62 deletions
diff --git a/_sources/recipes/inheritance.txt b/_sources/recipes/inheritance.txt
deleted file mode 100644
index 983e044..0000000
--- a/_sources/recipes/inheritance.txt
+++ /dev/null
@@ -1,62 +0,0 @@
-Basic Inheritance
-=================
-
-Introduction
-------------
-Cheetah, like Python, is an object-oriented language if you so choose to
-use it in that fashion. That is to say that you can use Cheetah in with
-object-oriented principles *or* you can use Cheetah in a strictly functional
-sense, like Python, Cheetah does not place restrictions on these barriers.
-
-While Cheetah is not strictly Python, it was designed as such to interoperate,
-particularly with the notion of classes, with Python itself. In effect you can
-define Python classes that inherit and extend from Cheetah-derived classes and
-vice versa. For this, Cheetah defines a few **directives** (denoted with the `\#`
-hash-mark) that are of some help, the most important one being the `\#extends`
-directive, with others playing important roles like `\#import`, `\#attr` and `\#super`
-
-In this recipe/tutorial I intend to explain and define a few key inheritance
-patterns with Cheetah, being:
-
-* A Cheetah Template inheriting from Python
-* Python inheriting from a Cheetah Template
-* Cheetah Templates and "*mixins*"
-
-This document also operates on the assumption that the reader is at least
-somewhat familiar with the basic tenets of object-oriented programming in
-Python.
-
-
-Cheetah inheriting from Python
-------------------------------
-Whether or not you are aware of it, Cheetah templates are always inheriting from
-a Python class by default. Unless otherwise denoted, Cheetah templates are compiled
-to Python classes that subclass from the `Cheetah.Template.Template` class.
-
-What if you would like to introduce your own Template base class? Easily acheived by
-defining your own Template class in a Python module, for example::
-
- import Cheetah.Template
-
- class CookbookTemplate(Cheetah.Template.Template):
- _page = 'Cookbook'
- author = 'R. Tyler Ballance'
- def pageName(self):
- return self._page or 'Unknown'
-
-**Figure 1. cookbook.py**
-
-For this example, I want all my subclasses of the `CookbookTemplate` to define a
-page author which will be used in some shared rendering code, to accomplish this
-my templates will need to subclass from `CookbookTemplate` explicitly instead of
-implicitly subclassing from `Cheetah.Template.Template`::
-
- #import cookbook
- #extends cookbook.CookbookTemplate
- #attr author = 'Tavis Rudd'
-
- ## The rest of my recipe template would be below
-
-**Figure 2. recipe1.tmpl**
-
-