class Mandriller::Base

Constants

ARRAY_SETTINGS
BOOLEAN_SETTINGS
DATETIME_SETTINGS
JSON_SETTINGS
STRING_SETTINGS

Public Class Methods

set_template(template_name, block_name = nil) click to toggle source
# File lib/mandriller/base.rb, line 48
def set_template(template_name, block_name = nil)
  self.mandrill_template = [template_name, block_name]
end

Public Instance Methods

mail(*args) click to toggle source
Calls superclass method
# File lib/mandriller/base.rb, line 57
def mail(*args)
  tracks = []
  tracks << (mandrill_open_track ? 'opens' : nil)
  if v = mandrill_click_track
    tracks << "clicks_#{v}"
  end
  tracks = tracks.compact.map(&:to_s)
  unless tracks.empty?
    tracks.each do |track|
      validate_values!(track, %w(opens clicks_all clicks_htmlonly clicks_textonly))
    end
    self.headers['X-MC-Track'] = tracks.join(',')
  end

  v = mandrill_template
  self.headers['X-MC-Template'] = v.join('|') unless v.nil? || v.empty?

  [BOOLEAN_SETTINGS, STRING_SETTINGS, JSON_SETTINGS, ARRAY_SETTINGS, DATETIME_SETTINGS].inject({}, :merge).each do |key, header_name|
    if is_mandrill_setting_defined?(key)
      self.headers[header_name] = get_mandrill_setting(key)
    end
  end

  super(*args)
end
set_template(template_name, block_name = nil) click to toggle source
# File lib/mandriller/base.rb, line 53
def set_template(template_name, block_name = nil)
  @mandrill_template = [template_name, block_name].compact
end

Private Instance Methods

validate_values!(value, valid_values) click to toggle source
# File lib/mandriller/base.rb, line 85
def validate_values!(value, valid_values)
  raise Mandriller::InvalidHeaderValue, "#{value} is not included in #{valid_values.join(', ')}" unless valid_values.include?(value)
end