Pergunta

Estou trabalhando em um motor Rails e estou tentando escrever um gerador que colocará esta linha

do_stuff (foo)

Como a última declaração em config/routes.rb, sem quebrar a sintaxe do arquivo.

Especificamente, se meu config/routes.rb Parece isso atualmente

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

Depois de executar o gerador, eu gostaria do config/routes.rb Para parecer assim

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

Eu olhei para o que ActiveAdmin faz, mas não consigo criar uma regra de última linha. Qualquer ajuda é muito apreciada.

Foi útil?

Solução

Eu não testei isso, mas acho que o que você vinculou no gerador do ActiveAdmin, pode funcionar assim:

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

Isso deve inserir seu código logo antes de um end Token que começa no início de uma linha. Isso funciona apenas para arquivos de rotas adequadamente formatadas ....

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top