Question

Je travaille sur un moteur Rails et j'essaie d'écrire un générateur qui mettra cette ligne

do_stuff (foo)

Comme la dernière déclaration dans config/routes.rb, sans casser la syntaxe du fichier.

Plus précisément, si mon config/routes.rb ressemble à ça actuellement

Rails.application.routes.draw do
    blah
    more blah
end

Après avoir exécuté le générateur, je voudrais le config/routes.rb pour ressembler à ça

Rails.application.routes.draw do
    blah
    more blah
    do_stuff (foo) # injected line
end

J'ai regardé quoi Activeadmin fait, mais je ne peux pas créer une règle de dernière ligne de couverture. Toute aide est grandement appréciée.

Était-ce utile?

La solution

Je n'ai pas testé cela, mais je pense que d'après ce à quoi vous avez lié dans le générateur ActiveAlmin, cela pourrait fonctionner comme ceci:

inject_into_file "config/routes.rb", "  do_stuff(foo)\n", :before => /^end/

Cela devrait insérer votre code juste avant un end Jeton qui commence au début d'une ligne. Cela ne fonctionne cependant que pour des fichiers de routes correctement formatés ....

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top