Давным давно возникла необходимость скачать с известного сайта карты генштаба для нескольких квадратов. Был написан наколенный скрипт, бродящий по дереву сайта и скачивающий карты. Прошло время, повторный запуск показал странность работы сайта - возврат пустых файлов на 90% запросов, частые пятисотки. Но задача утащить карты не руками осталась. Пришлось в учебно-тренировочных целях переписать простенький скрипт, добавить множество проверок, состояние каждой скачиваемой странички и заодно убрать всё лишнее - нам не нужен рельсовый код, достаточен минимальный доступ к бд для вытащить запись/обновить стейт обеспечивается Sequel, для запуска минимально удобной консольки racksh и для последующей неавтоматизируемой работы с с именами файлов подключим Sinatra, запускалкой скачивания вместо rake назеначим thor. И для удобства подключим монады от dry - быстро падающее итеративно отладить проще.
Ах да. Почему же учебно-тренировочный. Всего лишь из-за попутной отладки CI, постепенного втаскивания линтеров и спеков, отстройки удобного окружения вне рельс с нуля.
Посмотреть оригинальный скрипт можно в [lib/tasks/satmap.rake]. Новая версия запускается через sat_map.thor.
-
переписать валидацию в драй схему, убрать проверки из интерактора, валидации прописать рулезами