[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