Вопрос

Я работаю над двигателем Rails и пытаюсь написать генератор, который поместит эту линию

do_stuff (foo)

Как последнее заявление в config/routes.rb, не нарушая синтаксис файла.

В частности, если мой config/routes.rb Похоже, в настоящее время

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

После запуска генератора я хотел бы config/routes.rb выглядеть так

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

Я посмотрел на что ActiveEadmin делает, но я не могу создать правило последней строки. Любая помощь очень ценится.

Это было полезно?

Решение

Я не проверял это, но я думаю, что из того, с чем вы связаны в генераторе ActiveEdmin, это может работать так:

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

Это должно вставить ваш код прямо перед end токен, который начинается в начале линии. Это работает только для правильно отформатированных маршрутов, хотя ....

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top