Раннее успешное завершение Начиная с 2.2.0
Работа сервиса может быть завершена преждевременно и успешно при помощи вызова метода success!
.
Для Servactory это тоже является исключением, но успешным.
Использование
В качестве примера рассмотрим сервис нотификации, который должен работать в зависимости от среды, где он вызывается.
ruby
class NotificatorService::Slack::Error::Send < ApplicationService::Base
# ...
make :check_environment!
make :send_message!
private
def check_environment!
return if Rails.env.production?
success!
end
def send_message!
# Here is the API request in Slack
end
end
Вызов этого сервиса будет сразу завершаться успехом в средах, отличных от продакшена. Это может быть особенно полезно в более сложных реализациях, где условий для работы больше.