Что я подразумеваю под «сценарием поддержки»?
- Допустим, у вас есть простое приложение, в базе данных есть несколько
users
и, возможно, немного things
- Приложение имеет конечные точки API, но не имеет средств для создания токенов авторизации, поэтому вы пишете скрипт, который создает новый
user
(заданный и email
) и выводит токен авторизации - Приложение также не позволяет пользователи должны удалить
things
, поэтому вы пишете скрипт для удаления thing
с заданным id
(возможно, установите deleted_at
в now()
)
Вопрос в том, чтобы принять, что эти «сценарии» должны существовать и запускаться за кулисами пользователями типа администратора, где они должны жить? И как их тестировать?
- Должны ли они жить в каталоге
scripts
? - Должны ли они быть
rake
задачами (lib/tasks
)? (вероятно, не - Где-то еще?
- (Конечно, logi c следует отделять от разбора аргументов, но где каждая часть должна жить ?)
- Как их запускать? Как
ruby
скрипт (#!/bin/ruby
- ./path/to/script.rb arg1 arg2
- это не известно о RAILS_ENV
)? Или через runner (rails runner path/to/script.rb arg1 arg2
)? - Как их следует тестировать? (Существуют различные «трудности» тестирования скриптов, например, в некоторых случаях требуется
APP_PATH
, что делает их тестирование «хакерским» или хрупким)