Как написать расширение для Devise (для использования пользовательского хранилища данных)

Я хотел бы написать расширение для Devise, которое позволит вам использовать parse_resource в качестве хранилища данных (в отличие от ActiveRecord). parse_resource - это обертка Ruby для REST api Parse.com. Его интерфейс практически такой же, как у ActiveRecord, и является жалобой на ActiveModel. Из-за этого кажется возможным, что расширение для Devise может не требовать слишком много не-boilerplate.

Однако я не могу найти никаких руководств. Все, на что мне приходится полагаться, это исходные тексты других расширений. Из расширения MongoMapper я понял, что есть две основные части:

  1. Генераторы (не совсем обязательно)

    Здесь вы перезаписываете DeviseGenerator#(generate_model|inject_devise_content|replace_default_devise_orm) методы.

  2. "Кишки" (очень нужны)

    Я не совсем понимаю, что здесь происходит. Кажется, что здесь много шаблонов, с небольшим количеством пользовательского приведения типов, а внизу есть заявление, что мы будем использовать это расширение вместо ORM по умолчанию.

Это все, что здесь есть? Что я упустил? Может ли кто-нибудь объяснить, что происходит в "внутренностях" более подробно?

Есть ли какие-нибудь простые тесты, которые нужно выполнить, чтобы убедиться в полной совместимости с Devise?

13
задан Léo Léopold Hertz 준영 27 July 2012 в 22:36
поделиться