[SP-pm] Catalyst: bug a reportar ou comportamento esperado ?

Giuliani Sanches giulianisanches at gmail.com
Tue Jul 6 12:00:10 PDT 2010


Em 6 de julho de 2010 15:09, Eden Cardim <edencardim at gmail.com> escreveu:
>>>>>> "Giuliani" == Giuliani Sanches <giulianisanches at gmail.com> writes:
>
>    Giuliani> Boa noite, Antes de pensar em reportar um bug, "prigunto":
>
>    Giuliani> Estava eu aqui brincando com o Catalyst::Helper::AuthDBIC.
>
>    Giuliani> "Sabiamente" rodei ele duas vezes seguidas. Percebi que
>    Giuliani> meus testes começaram a dar erro e comecei a catar na
>    Giuliani> aplicação o que poderia ser.
>
>    Giuliani> Notei que muito código foi duplicado e então fui
>    Giuliani> organizando tudo, porém o erro persistia. Foi quando eu
>    Giuliani> lembrei do .conf da aplicação, e la estava:
>
>    Giuliani> <Model Auth>
>    Giuliani>   schema_class Foo::Auth::Schema
>    Giuliani>   connect_info dbi:SQLite:__path_to(db/auth.db)__
>    Giuliani>   connect_info user connect_info passwd # keep these here for dsns that need 'em
>    Giuliani> </Model>
>    Giuliani> <Model Auth>
>    Giuliani>   schema_class Foo::Auth::Schema
>    Giuliani>   connect_info dbi:SQLite:__path_to(db/auth.db)__
>    Giuliani>   connect_info user connect_info passwd # keep these here for dsns that need 'em
>    Giuliani> </Model>
>
>    Giuliani> Removi uma das entradas e tudo voltou ao normal. O
>    Giuliani> engraçado era o erro ao rodar o teste:
>
>    Giuliani> Couldn't load class (Foo) because: Not a HASH reference at
>    Giuliani> /home/khaoz/perl5/lib/perl5/Catalyst.pm line 2500.
>
>    Giuliani> Sinceramente, só descobri que o problema era as duas
>    Giuliani> entradas ali por acaso, por que resolvi dar uma olhadinha
>    Giuliani> no .conf.
>
>    Giuliani> Ignorando o fato de que a cagada de rodar o comando duas
>    Giuliani> vezes foi minha, essa mensagem de erro não poderia/deveria
>    Giuliani> ser mais clara ?
>
> Na verdade, a culpa é do Config::General, é uma feature documentada
> inclusive (na seção "IDENTICAL OPTIONS (ARRAYS)"), quando você declara
> duas tags com o mesmo nome ele cria um array e o catalyst espera um
> hash, por isso o problema.
>
> roda aí:
>
> perl -MData::Dump=dump -MConfig::General -le'print dump(Config::General->new('-String' => qq{<dir blah>\nuser max\n</dir>\n<dir blah>\nuser hannes\n</dir>})->getall)'
>
> É um problema difícil de debugar mesmo, e é mais difícil ainda de
> resolver, já que o Catalyst é agnóstico ao módulo de configuração, e
> quem passa a estrutura de dados ao Catalyst é o Config::Any. O lance é
> tentar se ater a uma configuração que gere um hash. Enfim o catalyst não
> é quem vai receber o patch, talvez o Catalyst::Plugin::ConfigLoader ou o
> Config::Any. É o preço que se paga pela flexibilidade.
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm at pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm

Muito obrigado Eden.

Por isso o assunto era bug ou comportamento.

Nesse caso é comportamento devido a flexibilidade, mas com o tempo eu
pego o jeito.

[]'s

-- 
Giuliani Sanches
twitter.com/giulianisanches
giulianisanches.blogspot.com

Como elaborar uma pergunta:
http://www.istf.com.br/perguntas/


More information about the SaoPaulo-pm mailing list