class SendGrid::Personalization
Attributes
bccs[R]
ccs[R]
custom_args[R]
dynamic_template_data[R]
from[R]
headers[R]
send_at[RW]
subject[RW]
substitutions[R]
tos[R]
Public Class Methods
new()
click to toggle source
# File lib/sendgrid/helpers/mail/personalization.rb, line 10 def initialize @tos = [] @from = nil @ccs = [] @bccs = [] @subject = nil @headers = {} @substitutions = {} @custom_args = {} @dynamic_template_data = {} @send_at = nil end
Public Instance Methods
add_bcc(bcc)
click to toggle source
# File lib/sendgrid/helpers/mail/personalization.rb, line 39 def add_bcc(bcc) raise DuplicatePersonalizationError if duplicate?(bcc) @bccs << bcc.to_json end
add_cc(cc)
click to toggle source
# File lib/sendgrid/helpers/mail/personalization.rb, line 33 def add_cc(cc) raise DuplicatePersonalizationError if duplicate?(cc) @ccs << cc.to_json end
add_custom_arg(custom_arg)
click to toggle source
# File lib/sendgrid/helpers/mail/personalization.rb, line 55 def add_custom_arg(custom_arg) custom_arg = custom_arg.to_json @custom_args = @custom_args.merge(custom_arg['custom_arg']) end
add_dynamic_template_data(dynamic_template_data)
click to toggle source
# File lib/sendgrid/helpers/mail/personalization.rb, line 60 def add_dynamic_template_data(dynamic_template_data) @dynamic_template_data.merge!(dynamic_template_data) end
add_from(from)
click to toggle source
# File lib/sendgrid/helpers/mail/personalization.rb, line 29 def add_from(from) @from = from.to_json end
add_header(header)
click to toggle source
# File lib/sendgrid/helpers/mail/personalization.rb, line 45 def add_header(header) header = header.to_json @headers = @headers.merge(header['header']) end
add_substitution(substitution)
click to toggle source
# File lib/sendgrid/helpers/mail/personalization.rb, line 50 def add_substitution(substitution) substitution = substitution.to_json @substitutions = @substitutions.merge(substitution['substitution']) end
add_to(to)
click to toggle source
# File lib/sendgrid/helpers/mail/personalization.rb, line 23 def add_to(to) raise DuplicatePersonalizationError if duplicate?(to) @tos << to.to_json end
to_json(*)
click to toggle source
# File lib/sendgrid/helpers/mail/personalization.rb, line 64 def to_json(*) { 'to' => tos, 'from' => from, 'cc' => ccs, 'bcc' => bccs, 'subject' => subject, 'headers' => headers, 'substitutions' => substitutions, 'custom_args' => custom_args, 'dynamic_template_data' => dynamic_template_data, 'send_at' => send_at }.delete_if { |_, value| value.to_s.strip == '' || value == [] || value == {} } end
Private Instance Methods
duplicate?(addition)
click to toggle source
# File lib/sendgrid/helpers/mail/personalization.rb, line 81 def duplicate?(addition) additional_email = addition.email.downcase [@tos, @ccs, @bccs].flatten.each do |elm| return true if elm&.dig('email')&.downcase == additional_email end false end