[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