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

Nuba Princigalli nuba at fastmail.fm
Tue Sep 3 10:40:55 PDT 2013


faz um fork E um release! se você curte o módulo e o autor tiver
abandonado, você pode tentar adotá-lo, também -- o módulo, não o autor!
;)





On Tue, Sep 3, 2013, at 01:02 PM, Tiago Peczenyj wrote:

faz um fork.



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

Eu pessoalmente não gosto 100% do data-verifier.

Ele tem dois 'bugs' que enchem o saco:

[2]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 <[3]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'
( [4]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 <[5]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 <[6]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: [7]http://sao-paulo.pm.org/
SaoPaulo-pm mailing list: [8]SaoPaulo-pm at pm.org
L<[9]http://mail.pm.org/mailman/listinfo/saopaulo-pm>
=end disclaimer



=begin disclaimer
   Sao Paulo Perl Mongers: [10]http://sao-paulo.pm.org/
 SaoPaulo-pm mailing list: [11]SaoPaulo-pm at pm.org
 L<[12]http://mail.pm.org/mailman/listinfo/saopaulo-pm>
=end disclaimer




--
"o animal satisfeito dorme". - Guimarães Rosa



=begin disclaimer

   Sao Paulo Perl Mongers: [13]http://sao-paulo.pm.org/

 SaoPaulo-pm mailing list: [14]SaoPaulo-pm at pm.org

 L<[15]http://mail.pm.org/mailman/listinfo/saopaulo-pm>

=end disclaimer






--

Saravá,

Renato CRON

[16]http://www.renatocron.com/blog/

[17]@renato_cron



=begin disclaimer

   Sao Paulo Perl Mongers: [18]http://sao-paulo.pm.org/

 SaoPaulo-pm mailing list: [19]SaoPaulo-pm at pm.org

 L<[20]http://mail.pm.org/mailman/listinfo/saopaulo-pm>

=end disclaimer









--

Tiago B. Peczenyj

Linux User #405772



[21]http://about.me/peczenyj

=begin disclaimer

  Sao Paulo Perl Mongers: [22]http://sao-paulo.pm.org/

SaoPaulo-pm mailing list: [23]SaoPaulo-pm at pm.org

L<[24]http://mail.pm.org/mailman/listinfo/saopaulo-pm>

=end disclaimer



--
Nuba R. Princigalli nuba at pauleira.com http://pauleira.com @nprincigalli
Discipline is not an end in itself, just a means to an end. - King
Crimson

References

1. mailto:renato.cron at gmail.com
2. https://github.com/gphat/data-verifier/issues/9
3. mailto:shonorio at gmail.com
4. https://github.com/AwareTI/MyApp
5. mailto:lucasmateus.oliveira at gmail.com
6. mailto:shonorio at gmail.com
7. http://sao-paulo.pm.org/
8. mailto:SaoPaulo-pm at pm.org
9. http://mail.pm.org/mailman/listinfo/saopaulo-pm
  10. http://sao-paulo.pm.org/
  11. mailto:SaoPaulo-pm at pm.org
  12. http://mail.pm.org/mailman/listinfo/saopaulo-pm
  13. http://sao-paulo.pm.org/
  14. mailto:SaoPaulo-pm at pm.org
  15. http://mail.pm.org/mailman/listinfo/saopaulo-pm
  16. http://www.renatocron.com/blog/
  17. http://twitter.com/#!/renato_cron
  18. http://sao-paulo.pm.org/
  19. mailto:SaoPaulo-pm at pm.org
  20. http://mail.pm.org/mailman/listinfo/saopaulo-pm
  21. http://about.me/peczenyj
  22. http://sao-paulo.pm.org/
  23. mailto:SaoPaulo-pm at pm.org
  24. http://mail.pm.org/mailman/listinfo/saopaulo-pm
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20130903/ef2af76f/attachment-0001.html>


More information about the SaoPaulo-pm mailing list