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

Lucas Oliveira lucasmateus.oliveira at gmail.com
Tue Sep 3 11:32:17 PDT 2013


	Tem nada misturado Cron, dei um exemplo do Data::Manager que o Solli queria e disse que usava ele com i18n e que uso com o Catalyst::Plugin::I18N para exibir mensagens amigáveis, que é o interesse do Solli.


Em 03/09/2013, às 15:13, Renato Santos <renato.cron em gmail.com> escreveu:

> Nossa vei,
> 
> cês tão misturando tudo os assuntos!!
> 
> 
> 
> 
> 2013/9/3 Lucas Oliveira <lucasmateus.oliveira em gmail.com>
> 
> 	Solli sempre usei com Catalyst e para o I18N eu utilizo o https://metacpan.org/module/Catalyst::Plugin::I18N e entao da pra usar o c.loc inclusive nos templates.
> 
> Em 03/09/2013, às 12:11, Solli Honorio <shonorio em gmail.com> escreveu:
> 
>> 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 em 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 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
>> 
>> 
>> =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
>> 
>> 
>> 
>> 
>> -- 
>> "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
> 
> 
> =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
> 
> 
> 
> 
> -- 
> Saravá,
> Renato CRON
> http://www.renatocron.com/blog/
> @renato_cron
> =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/9ed706cc/attachment-0001.html>


More information about the SaoPaulo-pm mailing list