Module: BananaPeels
- Defined in:
- lib/banana_peels/api.rb,
lib/banana_peels/version.rb
Defined Under Namespace
Modules: MailerHelper
Classes: API, Campaign
Constant Summary
collapse
- VERSION =
'0.0.8'
Class Method Summary
collapse
Class Method Details
.api(api_key) ⇒ Object
5
6
7
|
# File 'lib/banana_peels/api.rb', line 5
def api(api_key)
API.new(api_key)
end
|
.campaign(campaign_id, merge_tags, api_key) ⇒ Object
25
26
27
|
# 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) ⇒ Object
9
10
11
12
13
14
15
16
17
18
|
# 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) ⇒ Object
20
21
22
23
|
# File 'lib/banana_peels/api.rb', line 20
def campaigns_list(api_key)
api_data = api(api_key).campaigns.list([], 0, 1000) api_data['data']
end
|
.email_with_name(name, email) ⇒ Object
48
49
50
51
|
# 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) ⇒ Object
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.
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
# 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)
= c.default_mail_options.merge(mail_options)
if !mail_options[:from] && (mail_options[:from_name] || mail_options[:from_email])
[:from] = email_with_name(mail_options[:from_name] || c.from_name, mail_options[:from_email] || c.from_email)
end
mailer.mail() 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
|