Class: Mandriller::Base
- Inherits:
-
ActionMailer::Base
- Object
- ActionMailer::Base
- Mandriller::Base
- Includes:
- SettingsMethods
- Defined in:
- lib/mandriller/base.rb
Constant Summary collapse
- BOOLEAN_SETTINGS =
{ auto_text: 'X-MC-Autotext', auto_html: 'X-MC-AutoHtml', url_strip_qs: 'X-MC-URLStripQS', preserve_recipients: 'X-MC-PreserveRecipients', inline_css: 'X-MC-InlineCSS', view_content_link: 'X-MC-ViewContentLink', important: 'X-MC-Important', }
- STRING_SETTINGS =
{ tracking_domain: 'X-MC-TrackingDomain', signing_domain: 'X-MC-SigningDomain', subaccount: 'X-MC-Subaccount', bcc_address: 'X-MC-BccAddress', ip_pool: 'X-MC-IpPool', google_analytics_campaign: 'X-MC-GoogleAnalyticsCampaign', return_path_domain: 'X-MC-ReturnPathDomain', }
- JSON_SETTINGS =
{ metadata: 'X-MC-Metadata', merge_vars: 'X-MC-MergeVars', }
- ARRAY_SETTINGS =
{ google_analytics: 'X-MC-GoogleAnalytics', tags: 'X-MC-Tags', }
- DATETIME_SETTINGS =
{ send_at: 'X-MC-SendAt', }
Class Method Summary collapse
Instance Method Summary collapse
Methods included from SettingsMethods
Class Method Details
.set_template(template_name, block_name = nil) ⇒ Object
48 49 50 |
# File 'lib/mandriller/base.rb', line 48 def set_template(template_name, block_name = nil) self.mandrill_template = [template_name, block_name] end |
Instance Method Details
#mail(*args) ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# 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) ⇒ Object
53 54 55 |
# File 'lib/mandriller/base.rb', line 53 def set_template(template_name, block_name = nil) @mandrill_template = [template_name, block_name].compact end |