<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>Normalmente eu uso sempre com I18N mas da pra quebrar o galho assim</div><div><br></div><div><code></div><div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(194, 27, 45); ">#!/usr/bin/env perl</div><div style="margin: 0px; font-size: 11px; font-family: Monaco; min-height: 15px; "><br></div><div style="margin: 0px; font-size: 11px; font-family: Monaco; "><span style="color: #b245f3">use </span>common::sense<span style="color: #c13500">;</span></div><div style="margin: 0px; font-size: 11px; font-family: Monaco; "><span style="color: #b245f3">use </span>Data::Manager<span style="color: #c13500">;</span></div><div style="margin: 0px; font-size: 11px; font-family: Monaco; "><span style="color: #b245f3">use </span>Data::Verifier<span style="color: #c13500">;</span></div><div style="margin: 0px; font-size: 11px; font-family: Monaco; min-height: 15px; "><br></div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(178, 55, 243); "><span style="color: #b245f3">my </span><span style="color: #000000">%</span>msg_data<span style="color: #000000"> </span><span style="color: #c13500">= (</span></div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(4, 51, 255); "><span style="color: #c13500">   </span><span style="color: #000000">missing_name_last </span><span style="color: #c13500">=> </span>'Nao foi informado o campo name_last, seu idiota !'<span style="color: #c13500">,</span></div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(193, 53, 0); ">);</div><div style="margin: 0px; font-size: 11px; font-family: Monaco; min-height: 15px; "><br></div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(193, 53, 0); "><span style="color: #b245f3">sub </span><span style="color: #000000">messages </span>{ <span style="color: #000000">$</span><span style="color: #b237f3">msg_data</span>{<span style="color: #000000">$</span><span style="color: #b237f3">_</span>[<span style="color: #b23100">0</span>]} || <span style="color: #000000">$</span><span style="color: #b237f3">_</span>[<span style="color: #b23100">0</span>] }</div><div style="margin: 0px; font-size: 11px; font-family: Monaco; min-height: 15px; "><br></div><div style="margin: 0px; font-size: 11px; font-family: Monaco; "><span style="color: #b245f3">my </span>$<span style="color: #b237f3">dm</span> <span style="color: #c13500">= </span>Data::Manager<span style="color: #c13500">-></span><span style="color: #b245f3">new</span><span style="color: #c13500">;</span></div><div style="margin: 0px; font-size: 11px; font-family: Monaco; "><span style="color: #b245f3">my </span>$<span style="color: #b237f3">dv</span> <span style="color: #c13500">= </span>Data::Verifier<span style="color: #c13500">-></span><span style="color: #b245f3">new</span><span style="color: #c13500">(</span></div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(193, 53, 0); ">    <span style="color: #000000">filters </span>=> [ <span style="color: #b245f3">qw(trim) </span>],</div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(193, 53, 0); ">        <span style="color: #000000">profile </span>=> {</div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(193, 53, 0); ">            <span style="color: #000000">name_first </span>=> {</div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(193, 53, 0); ">                <span style="color: #000000">required </span>=> <span style="color: #b23100">1</span>,</div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(193, 53, 0); ">                <span style="color: #000000">type     </span>=> <span style="color: #0433ff">'Str'</span>,</div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(193, 53, 0); ">                <span style="color: #000000">filters  </span>=> [ <span style="color: #b245f3">qw(collapse) </span>]</div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(193, 53, 0); ">            },</div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(193, 53, 0); ">            <span style="color: #000000">name_last </span>=> {</div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(193, 53, 0); ">                <span style="color: #000000">required </span>=> <span style="color: #b23100">1</span>,</div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(193, 53, 0); ">                <span style="color: #000000">type     </span>=> <span style="color: #0433ff">'Str'</span>,</div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(193, 53, 0); ">                <span style="color: #000000">filters  </span>=> [ <span style="color: #b245f3">qw(collapse) </span>]</div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(193, 53, 0); ">            },</div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(193, 53, 0); ">            <span style="color: #000000">age  </span>=> {</div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(193, 53, 0); ">                <span style="color: #000000">type        </span>=> <span style="color: #0433ff">'Int'</span></div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(4, 51, 255); ">            <span style="color: #c13500">},</span></div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(193, 53, 0); ">            <span style="color: #000000">sign </span>=> {</div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(193, 53, 0); ">                <span style="color: #000000">required    </span>=> <span style="color: #b23100">1</span>,</div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(193, 53, 0); ">                <span style="color: #000000">type        </span>=> <span style="color: #0433ff">'Str'</span></div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(4, 51, 255); ">            <span style="color: #c13500">}</span></div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(193, 53, 0); ">        }</div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(193, 53, 0); ">    );</div><div style="margin: 0px; font-size: 11px; font-family: Monaco; min-height: 15px; "><br></div><div style="margin: 0px; font-size: 11px; font-family: Monaco; ">$<span style="color: #b237f3">dm</span><span style="color: #c13500">-></span>set_verifier<span style="color: #c13500">( </span>name <span style="color: #c13500">=> </span>$<span style="color: #b237f3">dv</span> <span style="color: #c13500">);</span></div><div style="margin: 0px; font-size: 11px; font-family: Monaco; ">$<span style="color: #b237f3">dm</span><span style="color: #c13500">-></span>verify<span style="color: #c13500">( </span>name <span style="color: #c13500">=> { </span>name_first <span style="color: #c13500">=> </span><span style="color: #0433ff">'Solli' </span><span style="color: #c13500">});</span></div><div style="margin: 0px; font-size: 11px; font-family: Monaco; min-height: 15px; "><br></div><div style="margin: 0px; font-size: 11px; font-family: Monaco; "><span style="color: #b245f3">if </span><span style="color: #c13500">(</span>!$<span style="color: #b237f3">dm</span><span style="color: #c13500">-></span>success<span style="color: #c13500">) {</span></div><div style="margin: 0px; font-size: 11px; font-family: Monaco; "><span style="color: #c13500">   </span><span style="color: #b237f3">print </span>&messages<span style="color: #c13500">( </span>$<span style="color: #b237f3">_</span><span style="color: #c13500">-></span>msgid <span style="color: #c13500">).</span>$<span style="color: #b237f3">/</span></div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(178, 55, 243); ">      <span style="color: #b245f3">foreach </span><span style="color: #c13500">(</span><span style="color: #000000">@</span>{ $dm->messages->messages }<span style="color: #c13500">);</span></div><div style="margin: 0px; font-size: 11px; font-family: Monaco; color: rgb(193, 53, 0); ">}</div></div><div></code></div><div><br></div><br><div><div>Em 02/09/2013, às 11:10, Solli Honorio <<a href="mailto:shonorio@gmail.com">shonorio@gmail.com</a>> escreveu:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">Pessoal,<div><br></div><div>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 ?</div>

<div><br></div><div>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.</div>

<div><br></div><div><code></div><div><div><font face="courier new, monospace">#!/usr/bin/env perl</font></div><div><font face="courier new, monospace">use common::sense;</font></div><div><font face="courier new, monospace">use Data::Manager;</font></div>

<div><font face="courier new, monospace">use Data::Verifier;</font></div><div><font face="courier new, monospace">use Data::Printer;</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">my $msg = Message::Stack->new;</font></div>

<div><font face="courier new, monospace">$msg->add({</font></div><div><font face="courier new, monospace">    msgid   => 'missing_name_last',</font></div><div><font face="courier new, monospace">    level   => 'error',</font></div>

<div><font face="courier new, monospace">    scope   => 'name1',</font></div><div><font face="courier new, monospace">    subject => 'name_last',</font></div><div><font face="courier new, monospace">    text    => 'Não foi informado o campo name_last, seu idiota !'} );</font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">my $dm = Data::Manager->new( { messages => $msg } );</font></div><div><font face="courier new, monospace">my $dv = Data::Verifier->new(</font></div>

<div><font face="courier new, monospace">    filters => [ qw(trim) ],</font></div><div><font face="courier new, monospace">        profile => {</font></div><div><font face="courier new, monospace">            name => {</font></div>

<div><font face="courier new, monospace">                required => 1,</font></div><div><font face="courier new, monospace">                type     => 'Str',</font></div><div><font face="courier new, monospace">                filters  => [ qw(collapse) ]</font></div>

<div><font face="courier new, monospace">            },</font></div><div><font face="courier new, monospace">            age  => {</font></div><div><font face="courier new, monospace">                type        => 'Int'</font></div>

<div><font face="courier new, monospace">            },</font></div><div><font face="courier new, monospace">            sign => {</font></div><div><font face="courier new, monospace">                required    => 1,</font></div>

<div><font face="courier new, monospace">                type        => 'Str'</font></div><div><font face="courier new, monospace">            }</font></div><div><font face="courier new, monospace">        }</font></div>

<div><font face="courier new, monospace">    );</font></div></div><div><font face="courier new, monospace"><br></font></div><div><pre style="font-size:12px;margin-top:0px;margin-bottom:0px;color:rgb(51,51,51);line-height:18px">
<div class="" id="LC116" style="padding-left:10px"><span class=""><font face="courier new, monospace">};</font></span></div></pre></div><div><font face="courier new, monospace"><br></font></div><div><div><font face="courier new, monospace">$dm->set_verifier('name1', $verifier);</font></div>

<div><font face="courier new, monospace">$dm->verify('name1', { name_last => 'Honorio', name_first => 'Solli' });</font></div><div><font face="courier new, monospace"><br></font></div><div>

<font face="courier new, monospace">my $results = $dm->get_results('name1');</font></div><div><font face="courier new, monospace">my $stack   = $dm->messages_for_scope('name1');</font></div><div><font face="courier new, monospace"><br>

</font></div><div><font face="courier new, monospace">say $results->success;</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">say "Is invalid name_first ", $results->is_invalid('name_first');</font></div>

<div><font face="courier new, monospace">say "Is invalid name_last ",  $results->is_invalid('name_last');  # yes</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">say "Is missing name_first ", $results->is_missing('name_first'); # no</font></div>

<div><font face="courier new, monospace">say "Is missing is_missing ", $results->is_missing('name_last'); # yes</font></div><div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">say "Missing count ", $results->missing_count;</font></div>

<div><font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">say "Count : ",  $stack->count ;</font></div><div><font face="courier new, monospace">p $stack->get_message( 0 );</font></div>

<div><font face="courier new, monospace">p $stack->get_message( 1 );</font></div></div><div><br></div><div></code></div><div><br></div><div><div><br></div>-- <br>"o animal satisfeito dorme". - Guimarães Rosa
</div></div>
=begin disclaimer<br>   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/">http://sao-paulo.pm.org/</a><br> SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br> L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>=end disclaimer<br></blockquote></div><br></body></html>