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

Tiago Peczenyj tiago.peczenyj at gmail.com
Tue Sep 3 09:02:16 PDT 2013


faz um fork.


2013/9/3 Renato Santos <renato.cron at gmail.com>

> 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 <shonorio at gmail.com>
>
>> 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 <lucasmateus.oliveira at gmail.com>
>>
>>>
>>> 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 at 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 at pm.org
>>> 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: SaoPaulo-pm at pm.org
>>>  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: SaoPaulo-pm at pm.org
>>  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: SaoPaulo-pm at pm.org
>  L<http://mail.pm.org/mailman/listinfo/saopaulo-pm>
> =end disclaimer
>
>


-- 
Tiago B. Peczenyj
Linux User #405772

http://about.me/peczenyj
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20130903/6da1f575/attachment-0001.html>


More information about the SaoPaulo-pm mailing list