On Thu, 2 Feb 2006, Andy Wardley wrote:
> With reference to:
>> http://catalyst.perl.org/random/castawa
y/2005/12/16/Template_Provider_DBI
>
> Jess Robinson wrote:
>> And while I'm at it, does anything actually use
the PREFIX_MAP code? It
>> seems that the FAQ, the Changes doc and the code
itself are all
>> contradictory, and the implementation appears as if
it would not work.
>
> It's confusing I admit, and only partially documented
in a half-hearted
> attempt to discourage people from using it in case I
ever decided to
> think about it properly and implement something better.
>
> But as far as I can tell, it is consistent and does
work.
>
> The values in PREFIX_MAP are numbers or strings
containing a list
> of numbers, delimited by any sequence of non-number
characters.
>
> foo => 1
> bar => '2'
> baz => '3 4 5'
> boz => '6, 7, 8'
>
> This gets expanded by the Template::Content::_init()
method to reference
> the actual providers in LOAD_TEMPLATES ($providers in
the code fragment
> below):
>
> while (my ($key, $val) = each %$prefix_map) {
> $prefix_map->{ $key } = [
> ref $val
> ? $val
> : map { $providers->[$_] }
> split(/\D+/, $val)
> ] unless ref $val eq 'ARRAY';
> }
>
> Then in the template() method we select the providers
based on any
> prefix specified, or the option, or the
whole LOAD_TEMPLATES
> list.
>
> if (defined $prefix) {
> $providers = $self->->{
$prefix }
> || return $self->throw("bad prefix
blah...);
> }
>
> $providers = $self->->
> || $self->
> unless $providers;
>
> Then we ask each $provider in $providers in turn for the
template
> and that pretty much wraps it up.
>
Hrmm.. thanks for that, I guess it was even more confusing
than I was
thinking.. ;)
Jess
_______________________________________________
templates mailing list
templates template-toolkit.org
http://lists.template-toolkit.org/mailman/listinfo/t
emplates
|