module BananaPeels
Constants
- VERSION
Public Class Methods
api(api_key)
click to toggle source
# File lib/banana_peels/api.rb, line 5 def api(api_key) API.new(api_key) end
campaign(campaign_id, merge_tags, api_key)
click to toggle source
# File lib/banana_peels/api.rb, line 25 def campaign(campaign_id, merge_tags, api_key) Campaign.new(campaign_id, merge_tags, api_key) end
campaigns(api_key)
click to toggle source
# File lib/banana_peels/api.rb, line 9 def campaigns(api_key) meta_list = campaigns_list(api_key) campaigns = [] meta_list.each do |c_meta| c = campaign(c_meta['id'], nil, api_key) c.mailchimp_meta = c_meta campaigns.push(c) end campaigns end
campaigns_list(api_key)
click to toggle source
# File lib/banana_peels/api.rb, line 20 def campaigns_list(api_key) api_data = api(api_key).campaigns.list([], 0, 1000) # TODO: presumes <= 1000 campaigns api_data['data'] end
email_with_name(name, email)
click to toggle source
Utility method.
# File lib/banana_peels/api.rb, line 48 def email_with_name(name, email) name = name.gsub(/([\\"])/, '\\'=>'\\\\', '"'=>'\\"') "\"#{name}\" <#{email}>" end
mail(mailer, campaign_id, mail_options, merge_tags, api_key)
click to toggle source
Use this instead of mail() in ActionMailer. Also allows :from_name, :from_email to be specified independently as mail_options as opposed to just :from.
# File lib/banana_peels/api.rb, line 32 def mail(mailer, campaign_id, mail_options, merge_tags, api_key) c = campaign(campaign_id, merge_tags, api_key) headers = c.default_mail_options.merge(mail_options) # Adjust from address. if !mail_options[:from] && (mail_options[:from_name] || mail_options[:from_email]) headers[:from] = email_with_name(mail_options[:from_name] || c.from_name, mail_options[:from_email] || c.from_email) end mailer.mail(headers) do |format| format.text { mailer.render text: c.text_content } format.html(content_transfer_encoding: 'quoted-printable') do mailer.render text: [c.html_content].pack('M') end end end