List Info

Thread: Template::Provider::DBI




Template::Provider::DBI
user name
2006-02-02 13:09:20
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.

HTH
A


_______________________________________________
templates mailing list
templatestemplate-toolkit.org
http://lists.template-toolkit.org/mailman/listinfo/t
emplates
Template::Provider::DBI
user name
2006-03-10 00:07:16

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
templatestemplate-toolkit.org
http://lists.template-toolkit.org/mailman/listinfo/t
emplates
[1-2]

about | contact  Other archives ( Real Estate discussion Medical topics )