Sha256: d7db38089086825976d5cca95ab6320bb01a75730f3fb970da83bfa25a606bec
Contents?: true
Size: 1.04 KB
Versions: 19
Compression:
Stored size: 1.04 KB
Contents
# frozen_string_literal: true module Emailbutler module Helpers private def resend_message_with_mailer(message) params = message.params mailer = message.mailer.constantize mailer = mailer.with(serialize(params['mailer_params'])) if params['mailer_params'].present? mailer = mailer.method(message.action) mailer = params['action_params'] ? mailer.call(*serialize(params['action_params'])) : mailer.call mailer.deliver_now end def serialize(value, reverse=true) return value.map { |element| serialize(element, reverse) } if value.is_a?(Array) return value.transform_values { |element| serialize(element, reverse) } if value.is_a?(Hash) reverse ? deserialize_value(value) : serialize_value(value) end def serialize_value(value) return value.to_global_id.to_s if value.respond_to?(:to_global_id) value end def deserialize_value(value) return GlobalID::Locator.locate(value) if value.is_a?(String) && value.starts_with?('gid://') value end end end
Version data entries
19 entries across 19 versions & 1 rubygems