class SendGridActionMailerAdapter::Converters::Personalizations
Public Instance Methods
assign_attributes(sendgrid_mail, value)
click to toggle source
# File lib/sendgrid_actionmailer_adapter/converters/personalizations.rb, line 26 def assign_attributes(sendgrid_mail, value) Array(value).each do |personalization| sendgrid_mail.add_personalization(personalization) end end
convert(mail)
click to toggle source
# File lib/sendgrid_actionmailer_adapter/converters/personalizations.rb, line 16 def convert(mail) # Separate emails per each To address. # Cc and Bcc addresses are shared with each emails. cc_addrs = mail[:cc]&.addrs bcc_addrs = mail[:bcc]&.addrs mail[:to].addrs.map do |to_addr| to_personalization(to_addr, cc_addrs, bcc_addrs) end end
validate(mail)
click to toggle source
# File lib/sendgrid_actionmailer_adapter/converters/personalizations.rb, line 8 def validate(mail) error_messages = [] if mail.to_addrs.empty? error_messages << "'to_addrs' must not be empty." end error_messages end
Private Instance Methods
to_personalization(to_addr, cc_addrs, bcc_addrs)
click to toggle source
# File lib/sendgrid_actionmailer_adapter/converters/personalizations.rb, line 34 def to_personalization(to_addr, cc_addrs, bcc_addrs) ::SendGrid::Personalization.new.tap do |p| p.add_to(::SendGrid::Email.new(email: to_addr.address, name: to_addr.display_name)) Array(cc_addrs).each do |addr| p.add_cc(::SendGrid::Email.new(email: addr.address, name: addr.display_name)) end Array(bcc_addrs).each do |addr| p.add_bcc(::SendGrid::Email.new(email: addr.address, name: addr.display_name)) end end end