Rspec-rails: Pas de moyen facile de remplacer le générateur de spécifications du contrôleur d'échafaudage

Créé le 14 juin 2013  ·  5Commentaires  ·  Source: rspec/rspec-rails

Je veux changer la façon dont la spécification du contrôleur d'échafaudage est générée.

Lors de la création d'un nouveau générateur dans mon application rails à l'adresse :
lib/generators/rspec/scaffold/templates/controller_spec.rb

Cela n'est jamais invoqué, seul le générateur de contrôleur d'échafaudage rspec-rails prêt à l'emploi est invoqué.

Ce serait formidable si nous pouvions simplement changer la façon dont les spécifications des contrôleurs d'échafaudage sont générées.

Commentaire le plus utile

On dirait que cela fonctionne réellement, je viens d'avoir le chemin pour mettre le fichier modèle de remplacement mal. Le chemin correct est :
lib/templates/rspec/scaffold/controller_spec.rb
(avant j'avais lib/generators/rspec/scaffold/templates/controller_spec.rb)

Lorsque vous placez un fichier dans ce chemin correct, le modèle est remplacé par ce fichier.
Dois-je mettre à jour le fichier readme pour indiquer où placer ces fichiers ?

Tous les 5 commentaires

Je ne sais pas vraiment comment faire fonctionner cela. Il semble qu'un travail sur le mécanisme du générateur de Rails serait nécessaire.

Si vous avez plus d'informations à ce sujet, ou si vous souhaitez l'implémenter, je serais heureux de regarder du code :) Mais étant donné cela, je vais fermer car ce n'est pas un problème.

Dans la documentation du générateur de rails, il est indiqué que vous pouvez remplacer les modèles en mettant un fichier du même nom dans votre application avec le même chemin relatif du générateur d'origine :
http://guides.rubyonrails.org/generators.html#customizing -your-workflow-by-changing-generators-templates
Donc, sur la base de cette logique, il devrait être théoriquement possible de faire la même chose avec le fichier controller_spec.rb
Je vais parcourir le code du générateur de rails pour voir où cela est fait (c'est-à-dire où cela vous permet de remplacer helper.rb)

@oveddan avez-vous résolu ce problème ?

Pas encore - je pense qu'il a fait quelque chose avec la façon dont rails sélectionne son modèle de générateur pour les échafaudages. Besoin d'approfondir cela.

On dirait que cela fonctionne réellement, je viens d'avoir le chemin pour mettre le fichier modèle de remplacement mal. Le chemin correct est :
lib/templates/rspec/scaffold/controller_spec.rb
(avant j'avais lib/generators/rspec/scaffold/templates/controller_spec.rb)

Lorsque vous placez un fichier dans ce chemin correct, le modèle est remplacé par ce fichier.
Dois-je mettre à jour le fichier readme pour indiquer où placer ces fichiers ?

Cette page vous a été utile?
0 / 5 - 0 notes