Eu pessoalmente não gosto 100% do data-verifier. Ele tem dois 'bugs' que enchem o saco:
https://github.com/gphat/data-verifier/issues/9 e o cara nunca responde. Falta uma flag para dizer se o valor '' é pra ser valido ou virar undef. em caso de ints, num, booleans, faz sentido considerar '' como sendo undef, porém, textos podem ser vazios! Sobre a questão das mensagens, também seria legal poder pegar o motivo do erro.. podia ser um die dentro do post_check e capturar isso. ai depois seria crair só outro Data::ManagerFoo que saiba tratar os Data::VerifierFoo 2013/9/3 Solli Honorio <[email protected]> > Lucas, > > Obrigado pelo retorno. Ontem a noite estudei o código do Data::Manager e > ví que realmente não rola fazer o que eu estava querendo fazer (passar uma > pilha de mensagem e receber de acordo com o contexto) e ai estou > encaminhando para a mesma solução que você. > > Como vc faz com o I18N ? > > O Renato Cron publicou um 'template' ( https://github.com/AwareTI/MyApp) de > como eles estão utilizando o Data::Manager. Estudei o código e achei > engenhoso, mas ainda quero manter um melhor controle do ResultSet porquê > quero devolver uma estrutura mais complexa de informação. > > Abraços, > > Solli Honorio > > > > 2013/9/3 Lucas Oliveira <[email protected]> > >> >> 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 <[email protected]> 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: [email protected] >> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >> =end disclaimer >> >> >> >> =begin disclaimer >> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >> SaoPaulo-pm mailing list: [email protected] >> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >> =end disclaimer >> >> > > > -- > "o animal satisfeito dorme". - Guimarães Rosa > > =begin disclaimer > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > SaoPaulo-pm mailing list: [email protected] > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > =end disclaimer > > -- Saravá, Renato CRON http://www.renatocron.com/blog/ @renato_cron <http://twitter.com/#!/renato_cron>
=begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: [email protected] L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer
