LINUX.ORG.RU

Модульное rails приложение

 


0

2

Необходимо написать модульное приложение, которое будет состоять из некого «микроядра», содержащего основное ABI и множества модулей, реализующих большинство функциональности. В идеале, модули должны подключаться без правки конфигурационных файлов и запуска bundler (то есть, пользователь просто указывает ссылку на пакет модуля и он добавляется). В данный момент присматриваюсь к реализации с использованием rails plugins, но они кажутся немного избыточными и недостаточно динамическими.

Собственно, вопрос: есть ли способы реализовать user-friendly подключение модулей, удобнее чем plugins для rails?

★★★★

Последнее исправление: CYB3R (всего исправлений: 1)

клади куда-нить, да подключай..

    config.autoload_paths += %W(
      #{config.root}/your_plugins_dir/**/
    )
Чем gem не угодили интересно..

special-k ★★★★
()
Ответ на: комментарий от special-k

А еще наверняка миграции бд придется накатывать/откатывать каким-то образом.

Я полагаю что ТСу попался заказчик-пхпэшник, который хочет качать такие плагины из инета и включать/отключать их кнопочкой в админке например.

anonymous
()
Ответ на: комментарий от anonymous

Ну это не похоже на плагины rails (которые выпилили если я не ошибаюсь), т.к. это runtime и это «немного» другое.

special-k ★★★★
()

А тебе какие модули нужны? Что за функционал туда собираешься класть?

vladimir-vg ★★
()

пользователь просто указывает ссылку на пакет модуля и он добавляется

Какой пользователь, где указывает? А отключать модули тоже нужна возможность?

Попахивает адским извратом, конечно. Предлагаю сделать обёртку для энджинов, обеспечивающую загрузку кода без перезапуска сервера. Вкупе с какой-нибудь бессхемной СУБД это почти решит твою задачу. Останется только запилить мегагибкую шаблонизацию.

Apple-ch ★★
()
Ответ на: комментарий от special-k

gem не угодили тем, что через веб-морду их просто так не поставишь. autoload простой не очень подходит, так как миграции.

drakmail ★★★★
() автор топика
Ответ на: комментарий от Apple-ch

Обычный пользователь веб-приложения, наделенный правами администратора. Отключать само-собой тоже надо.

Сервер перезагружать можно. По сути, нужно реализовать что-то похожее на ISPManager.

drakmail ★★★★
() автор топика
Ответ на: комментарий от drakmail

Я не знаю, что такое испманагер. Если сервер можно перезапускать, а модули независимы друг от друга, то энджины — твой выбор. Посмотри, кстати, на Refinery CMS. Тебе надо будет только написать костыль для установки и инициализации своих энджинов в обход бандлера.

Apple-ch ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.