Паттерны на ruby: Сервис

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

Пример задачи: Необходимо реализовать функционал запроса на восстановление пароля.

Реализация: Создадим класс <ForgottenPasswordService> для описание следующего алгоритма действий: Найти пользователя по его email; Сгенерировать токен восстановления пароля; Отправить сообщение со ссылкой-восстановления на почту.