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

Daniel de Oliveira Mantovani daniel.oliveira.mantovani at gmail.com
Tue Sep 3 10:58:44 PDT 2013


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ê.

" o que eu estava querendo fazer (passar uma pilha de mensagem e
receber de acordo com o contexto)"

Shonorio, repetindo o AMQP se encaixa perfeitamente. Eu sugiro que
você leia o link que eu te enviei. Se um serviço na sua máquina vai te
poupar centenas de linhas de código, talvez nessa situação, nesse
contexto obscuro no qual não foi definido pelo interlocutor seja uma
boa.

Se você acha que isso é demais para você, eu sinto muito que alguém
com pelo menos 15/20 anos de experiência ainda não saiba formular uma
pergunta. Perguntas genéricas, respostas genéricas. E ainda acho
extremamente desnecessário o seu ataque gratuito, mas se você ainda
não percebeu isso afasta as pessoas da lista.

>
> 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
>



-- 

-dom

--

Daniel de Oliveira Mantovani
Business Analytic Specialist
Perl Evangelist /Astrophysics hobbyist.
+55 11 9 8538-9897
XOXO


More information about the SaoPaulo-pm mailing list