Nous introduisons actuellement DBIX :: Classe Code> Dans notre équipe et nous aimerions commencer avec
DBIX :: Classe :: Schéma :: Chargeur Code>. Cependant, nous avons des exigences difficiles sur le style de code, c'est-à-dire que nous avons
Perl :: Tidy Code> Dans le cadre de notre script code> pré-commist, car nous n'avons pas eu généré code avant. Nous devrions nous assurer que le code que
schéma :: chargeur code> génère est propre et bien rangé. Nous ne pouvons pas exécuter
perltidy code> sur le code avant de commenter, car il visse le hachage MD5 de DBIC. Donc, un post-processeur intégré dans
schéma :: chargeur code> serait mon préféré et probablement la seule solution réalisable. Mais toujours: comment géreriez-vous ce problème? P>
DBIX :: Classe :: Schema :: Chargeur :: Base Code> Pour utiliser un
Perltidy code> s>
Preprocess code> Paramètre s'il en reçoit un. p>
3 Réponses :
La version de développement de DBICSL propose désormais une option Overwrite_Modifications que vous pouvez utiliser pour ignorer les modifications dans les parties MD5AMED du code. Cela devrait vous laisser courir Perltidy sur la sortie avant de la valider et pour toujours être en mesure de renverser plus tard. P>
0.05000 a été publié (auparavant la version de développement), il a ajouté les rbuels d'option sur écrase_modifications. P>
Je vais essayer d'ajouter une option Post_Process aussi bien. P>
Cette question a été posée il y a quelque temps, mais je devais m'occuper de cela aujourd'hui, alors je pensais que je partageais ma solution, sur la base des modifications apportées à ce module dans le temps étant. Si vous numérisez les documents de Perltidy pour --format-sauter, vous verrez que vous pouvez donner des instructions perltidy à propos duquel le code ne doit pas être rangé. Les marqueurs de début et d'extrémité sont # >> respectivement. Ainsi, les paramètres par défaut ressembleraient à ceci comme suit:
my %args = ( components => [ 'InflateColumn::DateTime', 'TimeStamp' ], debug => 1, dump_directory => './lib', filter_generated_code => sub { my ( $type, $class, $text ) = @_; return "#<<<\n$text#>>>"; }, generate_pod => 0, naming => 'current', overwrite_modifications => 0, skip_load_external => 1, use_moose => 1, use_namespaces => 1, ); make_schema_at( 'My::Schema', \%args, [$dsn, $user, $pass] );
C'est génial, merci!