bgetting-hominid 1.0.4 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/README.textile +5 -1
  2. data/VERSION.yml +2 -2
  3. data/lib/hominid.rb +34 -16
  4. metadata +2 -2
data/README.textile CHANGED
@@ -1,6 +1,6 @@
1
1
  h1. Hominid
2
2
 
3
- Hominid is a GemPlugin wrapper to the Mailchimp API.
3
+ Hominid is a GemPlugin wrapper to the "Mailchimp API":http://www.mailchimp.com/api/1.2/.
4
4
 
5
5
  h2. Installation
6
6
 
@@ -45,6 +45,10 @@ To unsubscribe someone:
45
45
 
46
46
  To update a list member:
47
47
 
48
+ <pre><code>@hominid.subscribe(@list_id, "email@example.com", {:FNAME => 'Robert', :EMAIL => 'another@example.com'}, 'html', true)</code></pre>
49
+
50
+ _or_
51
+
48
52
  <pre><code>@hominid.update_member(@list_id, "email@example.com", {:FNAME => 'Robert', :EMAIL => 'another@example.com'})</code></pre>
49
53
 
50
54
  Campaign methods are also supported. You can get all the campaigns for a particular list by:
data/VERSION.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
- :minor: 0
3
- :patch: 4
2
+ :minor: 1
3
+ :patch: 0
4
4
  :major: 1
data/lib/hominid.rb CHANGED
@@ -2,7 +2,7 @@ require 'xmlrpc/client'
2
2
 
3
3
  class Hominid
4
4
 
5
- # MailChimp API Documentation: http://www.mailchimp.com/api/1.1/
5
+ # MailChimp API Documentation: http://www.mailchimp.com/api/1.2/
6
6
 
7
7
  def initialize(autologin = true)
8
8
  load_monkey_brains
@@ -21,7 +21,7 @@ class Hominid
21
21
 
22
22
  def login
23
23
  begin
24
- @chimpApi ||= XMLRPC::Client.new2("http://api.mailchimp.com/1.1/")
24
+ @chimpApi ||= XMLRPC::Client.new2("http://api.mailchimp.com/1.2/")
25
25
  @api_key = @chimpApi.call("login", @chimpUsername, @chimpPassword)
26
26
  rescue
27
27
  puts "***** Mail Chimp Error *****"
@@ -33,7 +33,7 @@ class Hominid
33
33
 
34
34
  def add_api_key(key)
35
35
  begin
36
- @chimpApi ||= XMLRPC::Client.new2("http://api.mailchimp.com/1.1/")
36
+ @chimpApi ||= XMLRPC::Client.new2("http://api.mailchimp.com/1.2/")
37
37
  @chimpApi.call("apikeyAdd", @chimpUsername, @chimpPassword, key)
38
38
  rescue
39
39
  false
@@ -42,7 +42,7 @@ class Hominid
42
42
 
43
43
  def expire_api_key(key)
44
44
  begin
45
- @chimpApi ||= XMLRPC::Client.new2("http://api.mailchimp.com/1.1/")
45
+ @chimpApi ||= XMLRPC::Client.new2("http://api.mailchimp.com/1.2/")
46
46
  @chimpApi.call("apikeyExpire", @chimpUsername, @chimpPassword, key)
47
47
  rescue
48
48
  false
@@ -51,7 +51,7 @@ class Hominid
51
51
 
52
52
  def api_keys(include_expired = false)
53
53
  begin
54
- @chimpApi ||= XMLRPC::Client.new2("http://api.mailchimp.com/1.1/")
54
+ @chimpApi ||= XMLRPC::Client.new2("http://api.mailchimp.com/1.2/")
55
55
  @api_keys = @chimpApi.call("apikeys", @chimpUsername, @chimpPassword, @api_key, include_expired)
56
56
  rescue
57
57
  return nil
@@ -69,14 +69,23 @@ class Hominid
69
69
  end
70
70
  end
71
71
 
72
- def campaigns(list_id = nil)
73
- # Get the campaigns for this account (optionally for a specific list)
72
+ def campaigns(filters = {}, start = 0, limit = 50)
73
+ # Get the campaigns for this account
74
+ # API Version 1.2 requires that filters be sent as a hash
75
+ # Available options for the filters hash are:
76
+ #
77
+ # :campaign_id = (string) The ID of the campaign you wish to return.
78
+ # :list_id = (string) Show only campaigns with this list_id.
79
+ # :folder_id = (integer) Show only campaigns from this folder.
80
+ # :from_name = (string) Show only campaigns with this from_name.
81
+ # :from_email = (string) Show only campaigns with this from_email.
82
+ # :title = (string) Show only campaigns with this title.
83
+ # :subject = (string) Show only campaigns with this subject.
84
+ # :sedtime_start = (string) Show campaigns sent after YYYY-MM-DD HH:mm:ss.
85
+ # :sendtime_end = (string) Show campaigns sent before YYYY-MM-DD HH:mm:ss.
86
+ # :subject = (boolean) Filter by exact values, or search within content for filter values.
74
87
  begin
75
- if list_id
76
- @campaigns = @chimpApi.call("campaigns", @api_key, list_id)
77
- else
78
- @campaigns = @chimpApi.call("campaigns", @api_key)
79
- end
88
+ @campaigns = @chimpApi.call("campaigns", @api_key, filters, start, limit)
80
89
  rescue
81
90
  return nil
82
91
  end
@@ -249,10 +258,19 @@ class Hominid
249
258
  end
250
259
  end
251
260
 
252
- def members(list_id, status = "subscribed")
261
+ def members(list_id, status = "subscribed", since = "2000-01-01 00:00:00", start = 0, limit = 100)
253
262
  # Get members of a list based on status
263
+ # Select members based on one of the following statuses:
264
+ # 'subscribed'
265
+ # 'unsubscribed'
266
+ # 'cleaned'
267
+ # 'updated'
268
+ #
269
+ # Select members that have updated their status or profile by providing
270
+ # a "since" date in the format of YYYY-MM-DD HH:MM:SS
271
+ #
254
272
  begin
255
- @members = @chimpApi.call("listMembers", @api_key, list_id, status)
273
+ @members = @chimpApi.call("listMembers", @api_key, list_id, status, since, start, limit)
256
274
  rescue
257
275
  return nil
258
276
  end
@@ -267,10 +285,10 @@ class Hominid
267
285
  end
268
286
  end
269
287
 
270
- def subscribe(list_id, email, user_info = {}, email_type = "html")
288
+ def subscribe(list_id, email, user_info = {}, email_type = "html", update_existing = true, replace_interests = true)
271
289
  # Subscribe a member
272
290
  begin
273
- @chimpApi.call("listSubscribe", @api_key, list_id, email, user_info, email_type, @double_opt)
291
+ @chimpApi.call("listSubscribe", @api_key, list_id, email, user_info, email_type, @double_opt, update_existing, replace_interests)
274
292
  rescue
275
293
  false
276
294
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bgetting-hominid
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brian Getting
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-03-26 00:00:00 -07:00
12
+ date: 2009-04-01 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies: []
15
15