2008-09-18 5 views
18

J'ai commencé la conversion d'un projet à Moose et la première chose que j'ai remarquée, c'est que mes tests de critique/rangement vont au diable. Moose, Tidy et Critic ne semblent pas s'aimer autant qu'ils le faisaient.Perl :: Critique: La vie après l'orignal?

Y a-t-il des documents sur la façon de faire en sorte que le critique/bien-être apprécie davantage le dialecte Moose? Que font la plupart des utilisateurs de Moose? Relax/critique critique pour les modules Moose plus lourds? Politiques personnalisées?

Répondre

6

Les deux peuvent être configurés en détail.

Je ne sais pas pourquoi perltidy ne l'aimerait pas, il n'a rien à voir avec cela. Perltidy ne gouverne que le style. Vous pouvez changer le style de votre code sans changer aucune fonctionnalité, c'est surtout une question d'espace. Vous devez soit changer votre style, soit changer la configuration de perltidy en utilisant le fichier .perltidyrc.

Je ne sais pas quels problèmes perlcritic a avec lui (méthodes lvalue peut-être?), Mais vous pouvez envisager de désactiver ces politiques spécifiques en utilisant le fichier .perlcriticrc. Aussi, si votre perlcritic est vieux, vous voudrez peut-être le mettre à niveau, car certaines anciennes versions ont donné des erreurs incorrectes dans les classes Moose.

+3

Eh bien, je devine plus au point. Quelqu'un at-il un criticrc/perltidyrc qui est modifié pour les projets basés sur Moose? Chaque fois que je dévier de la forme stock rc, je me sens sale, et finissent généralement par empirer les choses. :-) – claco

+0

Ajouté: Perltidy ne gouverne que le style. Vous pouvez changer le style de votre code sans changer aucune fonctionnalité, c'est surtout une question d'espace. –

+0

Moose ne crée pas de méthodes lvalue pour vous. Je ne pense même pas qu'il existe une extension MooseX pour ça. –

3

Je ne ai pas de problème avec les tests de Critic - j'avoue que je cours à severity = 3, au moins en partie parce que certains de ce que je dois travailler est un code que je n'ai pas/temps/à ranger Des choses d'orignal naviguent à travers ça.

6

Les versions antérieures de la politique "use strict" de Perl :: Critic ne connaissaient pas Moose qui est strict pour vous, mais qui sera corrigé si vous mettez à jour Perl :: Critic. J'utilise à la fois Perl :: Critic et Perl :: Tidy avec Moose, et je ne vois pas quelque chose de particulièrement cassé. Eh bien, en fait, je ne peux pas obtenir Perl :: Tidy aux choses de mise en page comme celui-ci correctement:

my $apple = Apple->new({ 
    color => "red", 
    type => "delicious", 
}); 

Tidy insistera pour que (et {deux niveaux d'ouverture d'indentation, et il va juste regarder ce stupide :

my $apple = Apple->new({ 
     color => "red", 
     type => "delicious", 
}); 

Mais nous avons eu ce problème avant, la convention de codage dans le projet est d'utiliser un hashref, pas un hachage, pour les paramètres nommés donc ce n'est pas vraiment un problème lié Moose en tant que telle

..

Quels sont exactement vos symptômes?

/J

Questions connexes