class Smtpapi::Header

SendGrid smtpapi header implementation

Attributes

asm_group_id[R]
category[R]
filters[R]
ip_pool[R]
section[R]
send_at[R]
send_each_at[R]
sub[R]
to[R]
unique_args[R]

Public Class Methods

new() click to toggle source
# File lib/smtpapi.rb, line 13
def initialize
  @to = []
  @sub = {}
  @section = {}
  @category = []
  @unique_args = {}
  @filters = {}
  @send_at = nil
  @send_each_at = []
  @asm_group_id = nil
  @ip_pool = nil
end

Public Instance Methods

add_category(category) click to toggle source
# File lib/smtpapi.rb, line 72
def add_category(category)
  @category.push(category)
  self
end
add_filter(filter_name, parameter_name, parameter_value) click to toggle source
# File lib/smtpapi.rb, line 82
def add_filter(filter_name, parameter_name, parameter_value)
  @filters[filter_name] = {} if @filters[filter_name].nil?
  @filters[filter_name]['settings'] = {} if @filters[filter_name]['settings'].nil?
  @filters[filter_name]['settings'][parameter_name] = parameter_value
  self
end
add_section(key, value) click to toggle source
# File lib/smtpapi.rb, line 52
def add_section(key, value)
  @section[key] = value
  self
end
add_substitution(sub, values) click to toggle source
# File lib/smtpapi.rb, line 42
def add_substitution(sub, values)
  @sub[sub] = values
  self
end
add_to(address, name = nil) click to toggle source
# File lib/smtpapi.rb, line 26
def add_to(address, name = nil)
  if address.is_a?(Array)
    @to.concat(address)
  else
    value = address
    value = "#{name} <#{address}>" unless name.nil?
    @to.push(value)
  end
  self
end
add_unique_arg(key, value) click to toggle source
# File lib/smtpapi.rb, line 62
def add_unique_arg(key, value)
  @unique_args[key] = value
  self
end
escape_unicode(str) click to toggle source
# File lib/smtpapi.rb, line 119
def escape_unicode(str)
  str.unpack('U*').map do |i|
    if i > 65_535
      "\\u#{format('%04x', ((i - 0x10000) / 0x400 + 0xD800))}" \
      "\\u#{format('%04x', ((i - 0x10000) % 0x400 + 0xDC00))}"
    elsif i > 127
      "\\u#{format('%04x', i)}"
    else
      i.chr('UTF-8')
    end
  end.join
end
json_string() click to toggle source
# File lib/smtpapi.rb, line 114
def json_string
  escape_unicode(to_array.to_json)
end
Also aliased as: to_json
set_asm_group(group_id) click to toggle source
# File lib/smtpapi.rb, line 104
def set_asm_group(group_id)
  @asm_group_id = group_id
  self
end
set_categories(categories) click to toggle source
# File lib/smtpapi.rb, line 77
def set_categories(categories)
  @category = categories
  self
end
set_filters(filters) click to toggle source
# File lib/smtpapi.rb, line 89
def set_filters(filters)
  @filters = filters
  self
end
set_ip_pool(pool_name) click to toggle source
# File lib/smtpapi.rb, line 109
def set_ip_pool(pool_name)
  @ip_pool = pool_name
  self
end
set_sections(key_value_pairs) click to toggle source
# File lib/smtpapi.rb, line 57
def set_sections(key_value_pairs)
  @section = key_value_pairs
  self
end
set_send_at(send_at) click to toggle source
# File lib/smtpapi.rb, line 94
def set_send_at(send_at)
  @send_at = send_at
  self
end
set_send_each_at(send_each_at) click to toggle source
# File lib/smtpapi.rb, line 99
def set_send_each_at(send_each_at)
  @send_each_at = send_each_at
  self
end
set_substitutions(key_value_pairs) click to toggle source
# File lib/smtpapi.rb, line 47
def set_substitutions(key_value_pairs)
  @sub = key_value_pairs
  self
end
set_tos(addresses) click to toggle source
# File lib/smtpapi.rb, line 37
def set_tos(addresses)
  @to = addresses
  self
end
set_unique_args(key_value_pairs) click to toggle source
# File lib/smtpapi.rb, line 67
def set_unique_args(key_value_pairs)
  @unique_args = key_value_pairs
  self
end
to_json()
Alias for: json_string

Protected Instance Methods

to_array() click to toggle source
# File lib/smtpapi.rb, line 134
def to_array
  data = {}
  data['to'] = @to unless @to.empty?
  data['sub'] = @sub unless @sub.empty?
  data['section'] = @section unless @section.empty?
  data['unique_args'] = @unique_args unless @unique_args.empty?
  data['category'] = @category unless @category.empty?
  data['filters'] = @filters unless @filters.empty?
  data['send_at'] = @send_at.to_i unless @send_at.nil?
  data['asm_group_id'] = @asm_group_id.to_i unless @asm_group_id.nil?
  data['ip_pool'] = @ip_pool unless @ip_pool.nil?
  str_each_at = []

  @send_each_at.each do |val|
    str_each_at.push(val.to_i)
  end

  data['send_each_at'] = str_each_at unless str_each_at.empty?

  data
end