Y también se puede hacer esto:
use nes;
my $nes_tags = {};
$nes_tags->{'number'} = int rand 10;
my $nes_code = 'El número de la suerte es: <b>{: $ number :}</b>';
my $interpret = nes_interpret->new($nes_code);
print $interpret->go( %$nes_tags );
________________________________
De: Skriptke <[email protected]>
Para: Lista de correo de Madrid Perl Mongers <[email protected]>
Enviado: vie,19 febrero, 2010 12:02
Asunto: Re: [Madrid-pm] Curso acelerado de Nes
Perdón...
use nes;
my $container = nes_container->new('template.nhtml');
my $nes_tags = {};
$nes_tags->{'number'} = int rand 10;
$container->set_tags(%tags);
$container->interpret();
$container->out();
Me he levantado a las 6 y me acosté tarde...
________________________________
De: Skriptke <[email protected]>
Para: Lista de correo de Madrid Perl Mongers <[email protected]>
Enviado: vie,19 febrero, 2010 11:51
Asunto: Re: [Madrid-pm] Curso acelerado de Nes
También puedes hacer un uso tradicional de Nes, pero como ofrece ninguna
ventaja sobre otros sistemas de plantillas está sin documentar, aunque lo haré
cuando tenga un rato:
use nes;
my $container = nes_container->new('template.nhtml');
my $nes_tags = {};
$nes_tags->{'number'} = int rand 10;
$self->{'container'}->set_tags(%tags);
$self->{'container'}->interpret();
$self->{'container'}->out();
La clase Singleton la implementé entre otros para simplificar el uso de Nes.
* Estoy escribiendo estas cosas de cabeza y no me funciona muy bien, disculpar
si hay erorres :-)
________________________________
De: Salvador Fandiño <[email protected]>
Para: Lista de correo de Madrid Perl Mongers <[email protected]>
Enviado: vie,19 febrero, 2010 10:42
Asunto: Re: [Madrid-pm] Curso acelerado de Nes
Skriptke wrote:
> Lo primero que ha sido un placer conoceros, pero tengo una espinita clavada
> con Diego cuando me confeso que no supo hacer funcionar Nes, y yo que
> presumo de que es fácil de usar... :-)
>
> Que es Nes:
>
> Un sistema para la separación del código ejecutable Perl y la representación
> de los datos generados en HTML mediante Tags HTML que son reemplazados por
> variables creadas en Perl.
>
> De momento no es ninguna otra cosa.
>
> http://nes.sourceforge.net/miniblog/es/?item=Principios%20de%20Nes
>
> Caso práctico:
>
> Página que muestra un número aleatorio.
>
> Creamos la plantilla :
>
> lucky.nhtml
> {: NES 1.0 ('lucky.pl') :}
> {: # la linea {: NES 1.0 ('lucky.pl') :} le dice a Nes
> que cargue el el script lucky.pl para esta plantilla
> :}
> <html>
> <head>
> <title>Suerte</title>
> </head>
> <body>
> {:# {: $ number :} es la variable $nes_tags->{'number'} :}
> El número de la suerte es: <b>{: $ number :}</b>
> </body>
> </html>
>
> Creamos el script Perl:
>
> lucky.pl
> use nes;
>
> # Único objeto a instanciar en Perl
> my $nes = Singleton->new();
>
> # Las variables que Nes va a reemplazar en la plantilla
> my $nes_tags = {};
> $nes_tags->{'number'} = int rand 10;
>
> # Único método de Singleton, que envía los datos a reemplazar
> $nes_tags->out(%$nes_tags)
>
>
> Y ahora la gracia de Nes, lo convertimos en un objeto:
>
> lucky.nhtml
> {: NES 1.0 ('lucky.pl') :}
> {: $ number :}
>
> Y lo podemos insertar en cualquier página Web así:
>
> template.nhtml:
> {: NES 1.0 script.pl :}
> <html>
> <head>
> <title>Lo que sea</title>
> </head>
> <body>
> ...
> El número de la suerte es: <b>{: include lucky.nhtml :}</b>
> ...
> </body>
> </html>
>
> http://nes.sourceforge.net/miniblog/es/?item=Objetos
>
> En vez de mostrar un número, nuestro objeto podía mostrar un formulario, un
> script PHP, JavaScript, Ajax, etc. o una mezcla. El Tag “include” admite
> parámetros:
>
> http://nes.sourceforge.net/miniblog/es/?item=Tag%20include%20%28file%29
> http://nes.sourceforge.net/miniblog/es/?item=Paradigma%20Nes
> http://nes.sourceforge.net/miniblog/es/?item=Incluir%20PHP%20y%20otros
>
> Prácticamente con esto, ya sabéis Nes, además de $ y de include hay 8 Tags
> más, se aprenden en un rato, y el único objeto que tendremos que instanciar
> en nuestro script Perl es uno de la clase Singleton y como sólo tiene un
> método (out) tampoco tiene perdida.
>
> http://nes.sourceforge.net/miniblog/es/?item=Sintaxis%20de%20Nes
> http://nes.sourceforge.net/miniblog/es/?item=La%20clase%20Singleton
>
Un par de cuestiones de estilo:
1) Singleton es un muy mal nombre para un paquete. Llamale Nes o Nes::Stash
2) nes tampoco es un buen nombre, los nombre en minusculas estan reservados
para pragmas (strict, autodie, etc). Usa Nes o NES
3) Si tu clase realmente es un singleton, no necesitas el new, directamente
tendrias que poder hacer
Nes::Stash->set(%datos);
por ejemplo asi
package Nes::Stash;
my $singleton;
sub set {
my $self = shift;
ref $self or $self = ($singleton ||= __PACKAGE__->_new);
$self->...
}
... pero claro solo si es un singleton de verdad, que con la estructura que
tienes no tengo muy claro que lo sea!
- Salva
_______________________________________________
Madrid-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/madrid-pm
_______________________________________________
Madrid-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/madrid-pm