From setok at fishpool.com Tue Feb 5 16:10:06 2008
From: setok at fishpool.com (Kristoffer Lawson)
Date: Tue, 5 Feb 2008 17:10:06 +0200
Subject: [Xotcl] Pre-release of a new XOTcl-based template system
Message-ID: <76F11D6F-70BD-4E27-B29E-E38BB25CB365@fishpool.com>
Having become somewhat fed up with the Template Toolkit, built on
Perl, I decided to create my own HTML/XML template system with the
help of XOTcl. It takes a rather different approach to how to create
templates, totally separating the actual HTML from the code that
defines the contents.
It's simple and easy, and there are things missing from it, but the
model is something I'm pretty keen to explore further. Not an actual
release, but you can fetch it to play around with it.
Some more information plus a rant against Template Toolkit (and
similar HTML template systems) at:
http://blog.fishpool.fi/?p=17
/ http://www.scred.com/
/ http://www.fishpool.com/~setok/
From jade at volunteersolutions.org Wed Feb 6 16:18:08 2008
From: jade at volunteersolutions.org (Jade Rubick)
Date: Wed, 6 Feb 2008 07:18:08 -0800
Subject: [Xotcl] Xotcl Digest, Vol 39, Issue 1
In-Reply-To:
References:
Message-ID:
Kristoffer:
Can you post some more information about how the API looks and works?
Your blog post doesn't have much information on how it works or looks.
Jade
Jade Rubick
Acting Chief Technology Officer
United eWay
jade.rubick at uwa.unitedway.org
w: 503.285.4963
f: 707.671.1333
http://www.UNITEDeWAY.org
On Feb 6, 2008, at 3:00 AM, xotcl-request at alice.wu-wien.ac.at wrote:
From setok at fishpool.com Wed Feb 6 17:14:13 2008
From: setok at fishpool.com (Kristoffer Lawson)
Date: Wed, 6 Feb 2008 18:14:13 +0200
Subject: [Xotcl] Illusion templates
In-Reply-To:
References:
Message-ID: <94357017-5BF8-4258-90E0-52B44E5E71E6@fishpool.com>
On 6 Feb 2008, at 17:18, Jade Rubick wrote:
> Kristoffer:
>
> Can you post some more information about how the API looks and works?
> Your blog post doesn't have much information on how it works or looks.
Sure. Well, for a start the package itself contains a couple of
really simple examples, but I'll copy the simplest one here.
Here is what the template looks like:
Hello world. Let's try some magic:
%%colour%%
End of magic
This template is for creating a list of colours. example.tcl, as
specified on the first line, contains the logic for the content of
objects and their amount. It is evaluated along with the template.
This is what it looks like:
Class ColourList -parameter {
colour
}
foreach colour {red green blue} {
set ob [ColourList new -colour $colour]
ColourList lappend obOrder $ob
}
So basically it creates a single ColourList object for each colour we
want. It also appends them to obOrder to display them in the right
order (this phase is optional). The template uses the 'colour' method
to receive values, which is here implemented with -parameter, but
could easily be a method with some more logic instead.
To get the result we simply do:
set data [illusion::processTemplate example]
Here's the result:
Hello world. Let's try some magic:
red
green
blue
End of magic
I also have added a feature to include other template files. I've
kept it simple on purpose as I don't think a template file should be
complex. The complexity should be in the Tcl. I do think this could
lead to quite a versatile solution, though.
/ http://www.scred.com/
/ http://www.fishpool.com/~setok/
From neumann at wu-wien.ac.at Sun Feb 24 16:23:18 2008
From: neumann at wu-wien.ac.at (Gustaf Neumann)
Date: Sun, 24 Feb 2008 16:23:18 +0100
Subject: [Xotcl] Announcement: XOTcl 1.6.0 available
Message-ID: <47C18BE6.6020200@wu-wien.ac.at>
Dear XOTcl Community,
XOTcl 1.6.0 is available. This release provides in short:
- orthogonality improvements for introspection,
- more introspection methods (one can now e.g. query, into which
classes a mixin class is mixed into) and
- performance improvements (some methods are significantly
faster. e.g. by a factor of 1000 for larger systems).
In addition, the XOTcl source code follows now closer the Tcl
source code guidelines (e.g. variable naming), a few potential
crashes have been fixed.
See below for more details.
Best regards
-gustaf neumann
===============================================
Announcing XOTcl 1.6.0
*************************
We are pleased to announce the availability of XOTcl 1.6.0.
Major changes relative to 1.5.6 are:
* Provide a uniform interface to the following info subcommands
info superclass ?-closure? ?pattern?
info subclass ?-closure? ?pattern?
info instances ?-closure? ?pattern?
info instmixin ?-closure? ?pattern?
The new option "-closure" returns the transitive set of the
relation (e.g. .. info subclass -closure) returns the subclasses
and the subclasses of the subclasses. For "info instances
-closure" the instances of the subclasses are returned as
well. For more details, please see the language reference manual.
In cases, where a pattern is specified, and the pattern contains
meta-characters, a list of results is returned matching the
pattern (like "string match"). When no matching value is found,
an empty list is returned.
In cases, where a pattern is specified, and the pattern contains
no meta-characters, a single value is returned corresponding to
the specified value. The pattern is used to lookup an object or
class, such it is not necessary to provide fully qualified
names). if there is no match, empty is returned. Previously,
"info superclass" and "info subclass" returned a boolean value
and performed always a transitive search. Returning "" is more
consistent and more in line with Tcl.
Note that " info superclass -closure" is a replacement for
" info heritage", and " info instances -closure"
is a replacement for " allinstances". The old commands
will be marked as deprecated in the near future.
Please note, that the behavior of the match pattern has
changed and is therefor not completely compatible with
prior versions.
* New info subcommands:
info instmixinof ?-closure? ?pattern?
info mixinof ?pattern?
These info subcommands are used to determine, into
which classes a mixin class was mixed into.
These inverse functions of mixin and instmixin are used as well
internally. These functions help to speed certain operations
(e.g. superclass, or registering a mixin class) up by a factor of
1000 (!) or more, when a large number of objects exist.
This functionality was primarily implemented by Martin Matuska.
Many thanks!
* Made the behavior "pattern" in the following calls identical
concerning wild cards and object lookups