class BananaPeels::Campaign
Constants
- MERGE_TAG_REGEX
Public Class Methods
new(campaign_id, merge_tags, api_key)
click to toggle source
merge_tags
: optional, nil for default
# File lib/banana_peels/campaign.rb, line 17 def initialize(campaign_id, merge_tags, api_key) @campaign_id = campaign_id @raw_merge_tags = merge_tags @api_key = api_key @api = BananaPeels.api(api_key) end
Public Instance Methods
default_mail_options()
click to toggle source
# File lib/banana_peels/campaign.rb, line 51 def default_mail_options { from: from, subject: subject, } end
from()
click to toggle source
# File lib/banana_peels/campaign.rb, line 66 def from BananaPeels.email_with_name(from_name, from_email) end
from_email()
click to toggle source
# File lib/banana_peels/campaign.rb, line 74 def from_email replace_merge_tags(mailchimp_meta['from_email']) end
from_name()
click to toggle source
# File lib/banana_peels/campaign.rb, line 70 def from_name replace_merge_tags(mailchimp_meta['from_name']) end
html_content()
click to toggle source
# File lib/banana_peels/campaign.rb, line 129 def html_content merge_tags = self.merge_tags.dup merge_tags.each do |k,v| merge_tags[k] = CGI.escapeHTML(v.to_s).gsub("\n","\n<br>") end replace_merge_tags(html_content_unmerged, merge_tags) end
html_content_unmerged()
click to toggle source
# File lib/banana_peels/campaign.rb, line 123 def html_content_unmerged content = mailchimp_content['html'].to_s content = content.sub(/(.*)<center>.*?canspamBarWrapper.*?<\/center>/m,'\1') content end
id()
click to toggle source
# File lib/banana_peels/campaign.rb, line 58 def id mailchimp_meta['id'] end
mailchimp_content()
click to toggle source
# File lib/banana_peels/campaign.rb, line 46 def mailchimp_content # TODO: Cache. @mailchimp_content ||= @api.campaigns.content(@campaign_id, { view: 'raw' }) end
mailchimp_meta()
click to toggle source
# File lib/banana_peels/campaign.rb, line 28 def mailchimp_meta @mailchimp_meta ||= begin meta = nil if BananaPeels::API.cache? campaigns_list_data = BananaPeels.campaigns_list(@api_key) meta = campaigns_list_data.find{|camp| camp['id'] == @campaign_id } end unless meta meta = @api.campaigns.list({ campaign_id: @campaign_id })['data'].first end meta end end
mailchimp_meta=(mailchimp_meta)
click to toggle source
# File lib/banana_peels/campaign.rb, line 42 def mailchimp_meta=(mailchimp_meta) @mailchimp_meta = mailchimp_meta end
subject(merge_tags=nil)
click to toggle source
# File lib/banana_peels/campaign.rb, line 78 def subject(merge_tags=nil) replace_merge_tags(mailchimp_meta['subject'], merge_tags) end
text_content()
click to toggle source
# File lib/banana_peels/campaign.rb, line 119 def text_content replace_merge_tags(text_content_unmerged) end
text_content_unmerged()
click to toggle source
# File lib/banana_peels/campaign.rb, line 111 def text_content_unmerged content = mailchimp_content['text'].to_s content = content.sub(/=*\s*Unsubscribe\s\*\|HTML:EMAIL\|\*.*\z/m,'') # Auto-replaced if deleted. content = content.sub(/=*\s*This\semail\swas\ssent\sto\s\*\|EMAIL\|\*.*\z/m,'') # When generated from HTML version. content = content.sub(/=*\s*[^\n]*\*\|UNSUB\|\*.*\z/m,'') # Original generation. content end
title()
click to toggle source
# File lib/banana_peels/campaign.rb, line 62 def title mailchimp_meta['title'] end
to_name()
click to toggle source
# File lib/banana_peels/campaign.rb, line 82 def to_name replace_merge_tags(mailchimp_meta['to_name']) end