shikhalev.*
КДПВ сгенерирована по запросу «(yard) is (sequel) in winter fantasy style, detailed eyes»

Набросал предварительную версию YARD-плагина для автодокументирования Sequel-моделей — yard-is-sequel. Су­щес­т­ву­ю­щий yard-sequel с современными версиями YARD/Ruby/Sequel не работает.

Мой вариант, конечно, не может пока похвастаться полнофункциональностью (версия 0.8.0 — это ранняя альфа), но кое-что самое важное умеет:

  • Генерирует список ассоциаций: many_to_many, many_to_one и one_to_many с корректными ссылками на типы.

  • Генерирует список полей. Также с типами, но тут есть нюансы…

    1. Маппинг типов полей требует доработки. Кроме того, ти­пы, не поддерживаемые SQLite, скорее всего, не будут нормально обрабатываться в принципе.

      Поля берутся из Database#schema на созданной in-memory SQLite базе данных. Было бы хорошо, безусловно, брать их непосредственно из миграций, но пока непонятно, как это сделать.

    2. Путь к миграциям следует указать через переменную окружения.

Чего нужно доделать?

  • Отрефакторить и упростить обработку ассоциаций.

  • Расширить обработку типов в полях и сделать ее менее хрупкой. Сейчас есть подозрение, что минорная смена версии Sequel может всё поломать…

  • Добавить возможность брать схему из отдельно сохраненного файла (в формате JSON, скорее всего).


Но надо понимать, что я буду что-то править и дорабатывать только постольку, поскольку мне это самому нужно… Однако, если кто-то предложит свои пулл-реквесты, или хотя бы подробные баг-репорты, отнесусь со вниманием.