[Cascavel-pm] uso de __DATA__ com hierarquia de classes e Template Toolkit

Alceu R. de Freitas Jr. glasswalk3r em yahoo.com.br
Quarta Dezembro 5 08:08:38 PST 2007


Oi Luis,

Eu já mudei meu endereço cadastrado na lista... de
volta para o Yahoo!, daonde nunca deveria ter saído.

Bem, eu havia colocado os códigos relacionados no
email original, mas aí vai de novo o carinha que lê o
__DATA__:

<codigo>
package File::Validate::Template;

use strict;
use warnings;
use base 'Class::Accessor';
use Carp qw(confess);

__PACKAGE__->follow_best_practice();
__PACKAGE__->mk_ro_accessors(qw(code));

sub new {

    my $class = shift;
    confess "class is an obligatory parameter" unless
( defined($class) );

    my $self = { code => undef };

    bless $self, $class;

    $self->{code} = $self->_read_code();

    return $self;

}

sub _read_code {

	my $self = shift;
    my $buffer;

    # turn on slurp mode
    local $/;

    my $handle = ref($self) . '::DATA';
    $buffer = <$handle>;

    confess "No data from $handle file handle" unless
( defined($buffer) );

    return \$buffer;

}

1;
</codigo>

Enfim, acho que um inline não resolveria não... um dos
motivos de usar o TT é poder ter código razoavelmente
identado.

Sobre a idéia de instalar os arquivos de template
junto com os arquivos dos módulos pode ser uma boa
idéia. Eu concordo que está ficando complicado demais
já.

Algum exemplo sobre como usar Config.pm e FindBin.pm
para fazer isso? Digo, como eu farei para obter
dinamicamente o path daonde está os templates e passar
para o objeto template processar?

[]'s


Alceu Rodrigues de Freitas Junior
--------------------------------------
glasswalk3r em yahoo.com.br
http://www.imortais.cjb.net
-----------------------------------------------------------------------
A well-used door needs no oil on its hinges.
A swift-flowing stream does not grow stagnant.
Neither sound nor thoughts can travel through a vacuum.
Software rots if not used.
These are great mysteries -- The Tao Of Programming, 5.1


      Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento!
http://br.mail.yahoo.com/


Mais detalhes sobre a lista de discussão Cascavel-pm