Rails движки в зависимости от кода приложения? - PullRequest
1 голос
/ 24 августа 2010

У нас есть, как я подозреваю, необычная установка. У нас есть приложение Rails, которое мы продаем клиентам. Мы также упаковываем пакеты бизнес-функций в дополнительные дополнения, которые клиенты могут приобрести в соответствии со своими потребностями. Мы сделали это как плагины / движки Rails, чтобы они были хорошо разделены.

Это вызывает необычное требование, что все наши бизнес-плагины зависят от самого приложения. Другими словами, фреймворк находится в главной папке приложения Rails, а бизнес-модули - в vendor / plugins. Иными словами, они вряд ли плагины, если они полагаются на определенную папку приложения. Или они?

Это работает, так что мой вопрос не в архитектурном любопытстве, а в просьбе о помощи. Но следует ли это считать злоупотреблением системой плагин / движок? Или это одно из потенциально полезных применений движков Rails?

Брендон.

1 Ответ

1 голос
/ 24 августа 2010

Я не вижу, в чем проблема с плагином, имеющим зависимости, если они квалифицированы и легко понятны. Плагин Rails - ничто без Rails, и часто для этого требуется определенная версия.

В плохом дизайне есть плагин, который разрушает приложение, если оно не может загружаться должным образом, вместо того, чтобы создавать какое-то полезное сообщение. Например, вы можете протестировать среду перед запуском в фут-первых.

Очень грубый способ сделать это, но, по крайней мере, дать обратную связь, может выглядеть так в инициализаторе для вашего плагина:

unless (defined?(MyApp))
  raise "MyAppPlugin requires MyApp to be installed"
end

Вы можете сделать это более элегантно, создавая частные драгоценные камни для своего приложения и устанавливая требования более формально. Новая система Bundler делает это возможным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...