Мне нужна помощь, чтобы выяснить, как лучше всего создать движок Rails 3 (или плагин, и / или гем).
Извиняюсь за длину этого вопроса ... вот часть 1:
Моя компания использует поставщика услуг электронной почты для отправки всех наших исходящих электронных писем клиентов.Они создали веб-сервис SOAP, и я включил его в пример приложения на Rails 3.Сначала цель создания приложения состояла в том, чтобы я мог затем взять этот код и превратить его в драгоценный камень.
Вот несколько предысторий: у службы SOAP всего 23 действия, и при создании моего примера приложенияЯ сгруппировал похожие действия вместе.Некоторые из этих действий включают загрузку / загрузку списков рассылки и содержимого HTML через SOAP WS, и, как следствие, существует база данных MySQL с несколькими таблицами для хранения содержимого HTML и списков в качестве своего рода «промежуточной области».
В общем, у меня есть 5 моделей, которые содержат действия SOAP (они не наследуют от ActiveRecord :: Base) и 3 модели, которые взаимодействуют с базой данных MySQL.
Iу меня также есть соответствующий контроллер для каждой модели и представление для каждого действия SOAP, которое я использовал, чтобы помочь мне протестировать действия по мере их реализации.
Итак ... Я не уверен, куда идти дальше.Мой код требует много сухости.Например, WS требует, чтобы информация об аутентификации пользователя отправлялась в теле конверта каждого запроса.Таким образом, это означает, что каждый метод в модели имеет ту же самую информацию аутентификации, жестко запрограммированную в нем, которая является чрезвычайно повторяющейся;Очевидно, я бы хотел, чтобы это было чище.Я также оглядываюсь назад через код и вижу, что сами запросы повторяются и, вероятно, могут быть объединены.
Все это, я думаю, я могу понять самостоятельно, но здесь есть кое-что, что кажется очевидным, но яне могу понять.Как я могу создать методы, которые можно использовать во всех моих моделях (особенно если подумать о пользовательской части уравнения).
Вот часть 2:
Мое намерение с самого начала былочтобы извлечь мой код и упаковать его в драгоценный камень, в котором любой другой клиент моего ESP мог бы использовать его (плюс я буду использовать его в нескольких разных приложениях).Тем не менее, я хотел бы, чтобы это было очень настраиваемым.Должна быть минимальная конфигурация по умолчанию (например, просто модели, которые обертывают действия SOAP), создаваемые простым добавлением гема в Gemfile.Однако я также хотел бы, чтобы были доступны некоторые инструменты (например, генераторы или задачи Rake), чтобы пользователь мог начать работу.Я имею в виду варианты создания файлов миграции, моделей, контроллеров или представлений (или целых девяти ярдов, если они хотят).
Итак, вот где я застрял, зная, следует ли мне продолжатьПлагин или двигатель маршрута.Я читал серию Джордана Уэста о создании движка, и мне действительно нравится мысль об этом, но я не уверен, что это правильный путь для меня.
Так что, если вы читали это далеко, а я нетне смутил тебя, я мог бы использовать некоторые указания:)
Спасибо