Анонс Ruby digest: Стучим по рельсам

Nikolai Rubanov (Darksa)
Заметки про Evrone
2 min readApr 4, 2023

Наш апрельский дайджест мы посвящаем Ruby on Rails. В фокусе патч для пользовательских пространств имён и руководство по развёртыванию RoR на современной OpenBSD. В качестве «изюминки» вспомнили забавный баг GitHub десятилетней давности.

Что происходит во время автоматической загрузки веб-приложения на Rails? Вначале система сканирует и загружает все поддиректории, находящиеся в директории приложения. Исключение составляют лишь assets, views и javascript. Если мы создадим там любую поддиректорию, то Rails обеспечит её автоматическую загрузку. При этом стоит помнить, что директории работают в роли пространств имён, а имена файлов должны соответствовать константам, которые они определяют.

Новое — это хорошо забытое старое. Предлагаем отправиться в 2013 год и вспомнить любопытный баг GitHub. Тогда каждому пользователю без аватарки присваивалась аватарка из профиля разработчика Yehuda Katz. У этого разработчика идентификатор пользователя был равен 4. Ruby же присваивал идентификатору 4 значение nil, то есть отсутствие значения. Таким образом все пользователи без аватарки приравнивались к пользователю с идентификатором 4. Баг пофиксили, но вот для многих так и осталось тайной почему так произошло.

В сети появилось подробное руководство по развёртыванию Ruby on Rails плюс Falcon на OpenBSD. Автор руководства утверждает, что это самое чистое ядро, пользовательское пространство и синтаксис конфигурации. Концепция OpenBSD подразумевает полное отсутствие несвободных компонентов. Никакой код не может попасть в систему случайным образом, а любая неточность в документации немедленно исправляется. Мы не поленились развернуть инстанс по этому руководству, нашли несколько проблемных моментов и рассказали как их обойти.

Подробности вы найдёте в полной версии нашего дайджеста.

--

--