[SP-pm] Data::Manager, alguém utiliza este troço ?!

Lucas Oliveira lucasmateus.oliveira at gmail.com
Tue Sep 3 07:39:41 PDT 2013


	Normalmente eu uso sempre com I18N mas da pra quebrar o galho assim

<code>
#!/usr/bin/env perl

use common::sense;
use Data::Manager;
use Data::Verifier;

my %msg_data = (
   missing_name_last => 'Nao foi informado o campo name_last, seu idiota !',
);

sub messages { $msg_data{$_[0]} || $_[0] }

my $dm = Data::Manager->new;
my $dv = Data::Verifier->new(
    filters => [ qw(trim) ],
        profile => {
            name_first => {
                required => 1,
                type     => 'Str',
                filters  => [ qw(collapse) ]
            },
            name_last => {
                required => 1,
                type     => 'Str',
                filters  => [ qw(collapse) ]
            },
            age  => {
                type        => 'Int'
            },
            sign => {
                required    => 1,
                type        => 'Str'
            }
        }
    );

$dm->set_verifier( name => $dv );
$dm->verify( name => { name_first => 'Solli' });

if (!$dm->success) {
   print &messages( $_->msgid ).$/
      foreach (@{ $dm->messages->messages });
}
</code>


Em 02/09/2013, às 11:10, Solli Honorio <shonorio em gmail.com> escreveu:

> Pessoal,
> 
> Estou tentando configurar uma mensagem padronização no Data::Manager, mas não está funcionando. Alguém aqui já utilizou o Data::Manager para saber se é possível fazer isto que eu quero ?
> 
> O código abaixo, estou criando uma mensagem e adicionando no Data::Manger, porquê eu imaginei que quando ocorrer o problema dentro do escopo e msgid, eu teria o texto padronizado, mas o que estou recebendo é mais uma pilha de mensagem, mesmo quando não existe o erro.
> 
> <code>
> #!/usr/bin/env perl
> use common::sense;
> use Data::Manager;
> use Data::Verifier;
> use Data::Printer;
> 
> my $msg = Message::Stack->new;
> $msg->add({
>     msgid   => 'missing_name_last',
>     level   => 'error',
>     scope   => 'name1',
>     subject => 'name_last',
>     text    => 'Não foi informado o campo name_last, seu idiota !'} );
> 
> my $dm = Data::Manager->new( { messages => $msg } );
> my $dv = Data::Verifier->new(
>     filters => [ qw(trim) ],
>         profile => {
>             name => {
>                 required => 1,
>                 type     => 'Str',
>                 filters  => [ qw(collapse) ]
>             },
>             age  => {
>                 type        => 'Int'
>             },
>             sign => {
>                 required    => 1,
>                 type        => 'Str'
>             }
>         }
>     );
> 
> 
> };
> 
> $dm->set_verifier('name1', $verifier);
> $dm->verify('name1', { name_last => 'Honorio', name_first => 'Solli' });
> 
> my $results = $dm->get_results('name1');
> my $stack   = $dm->messages_for_scope('name1');
> 
> say $results->success;
> 
> say "Is invalid name_first ", $results->is_invalid('name_first');
> say "Is invalid name_last ",  $results->is_invalid('name_last');  # yes
> 
> say "Is missing name_first ", $results->is_missing('name_first'); # no
> say "Is missing is_missing ", $results->is_missing('name_last'); # yes
> 
> say "Missing count ", $results->missing_count;
> 
> say "Count : ",  $stack->count ;
> p $stack->get_message( 0 );
> p $stack->get_message( 1 );
> 
> </code>
> 
> 
> -- 
> "o animal satisfeito dorme". - Guimarães Rosa
> =begin disclaimer
>   Sao Paulo Perl Mongers: http://sao-paulo.pm.org/
> SaoPaulo-pm mailing list: SaoPaulo-pm em pm.org
> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer

-------------- Pr?xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20130903/6a627177/attachment-0001.html>


More information about the SaoPaulo-pm mailing list