mailjet 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9f1d6b9debd649f26eb3ef9683b4e48f243211db
4
- data.tar.gz: fe1cb0cf6ddf4ed890ba160fb1af81106dfa39e7
3
+ metadata.gz: d0e2c12ab0cc6237b42bd1d380226a9c34129ea8
4
+ data.tar.gz: 89d3e6c6d4d64cfa2a07b3e2d336ac0ce65dfae3
5
5
  SHA512:
6
- metadata.gz: 854a32d19553d1b500c3542ff9fa2090bc33fec4103a5e3b930187e6ef086ff372da1a29d96f21e912b43202a301861fe67724c93f02a0661b9e0d0ed203497b
7
- data.tar.gz: 0885de71bd859c00133c2fa1e0671ba0cc724e33829044b62be4f14690381b9be554385586fb6495467393396f811ac89d6981ca7f2eda315fb7d767acd1fd2a
6
+ metadata.gz: 803e5a56bf4c2cb174c49af87e6c2ba6a8376613c186dfe01153c62956f027029b82773eaf5c5acbf0f0dbd29920dc61bade288820aeebde184adf53a3e35dd7
7
+ data.tar.gz: 5ef130cf9c095200c80a8e6adc91934932beb0d675b343aa1bf6c7b72fdb363e248c809f9f55bb3134664f1d8b8707e820b19227cade2122c38b8d46fd73e7d4
data/README.md CHANGED
@@ -162,6 +162,15 @@ config.action_mailer.delivery_method = :mailjet
162
162
 
163
163
  *All parameters and attributes at https://eu.mailjet.com/docs/api/lists/addmanycontacts*
164
164
 
165
+ #### Unsubscribe contact from a list
166
+
167
+ ```ruby
168
+ > list.unsubscribe_contact("test@mailjet.com")
169
+ => OK
170
+ ```
171
+
172
+ *All parameters and attributes at https://eu.mailjet.com/docs/api/lists/unsubcontact*
173
+
165
174
  #### Remove contacts from a list
166
175
 
167
176
  ```ruby
@@ -301,11 +310,11 @@ config.action_mailer.delivery_method = :mailjet
301
310
  #### Set the raw HTML for a campaign:
302
311
 
303
312
  ```ruby
304
- > campaign.set_html("<html><head><title>Test</title></head><body>Test <a href=\"[[UNSUB_LINK_EN]]\">[[UNSUB_LINK_EN]]</a></body></html>")
313
+ > campaign.set_html("<html><head><title>Test</title></head><body>Test <a href=\"[[UNSUB_LINK_EN]]\">[[UNSUB_LINK_EN]]</a></body></html>")
305
314
  => OK # response status
306
315
  ```
307
316
 
308
- *All parameters and attributes at https://eu.mailjet.com/docs/api/message/sethtmlcampaign*
317
+ *All parameters and attributes at https://eu.mailjet.com/docs/api/message/sethtmlcampaign*
309
318
 
310
319
  #### Duplicate a campaign:
311
320
 
@@ -452,7 +461,7 @@ Then at the root of the gem, simply run:
452
461
 
453
462
  ```bash
454
463
  bundle
455
- rake
464
+ bundle exec rake
456
465
  ```
457
466
  ## Send a pull request
458
467
 
@@ -7,7 +7,7 @@ module Mailjet
7
7
  # code is ugly, output is pretty
8
8
  super("error #{code} while sending #{request.inspect} to #{request_path} with #{params.inspect}\n\n" +
9
9
  (res['errors'].present? ?
10
- (res['errors'] || []).map do |param, text|
10
+ [(res['errors'] || [])].flatten.map do |param, text|
11
11
  [param, text].map(&:to_s).reject(&:blank?).join(': ')
12
12
  end.join("\n") :
13
13
  res.inspect
@@ -48,7 +48,6 @@ module Mailjet
48
48
  def create(options = {})
49
49
  campaign_attr = (options.delete(:api) || Mailjet::Api.singleton).messageCreatecampaign(options, 'Post')["campaign"]
50
50
  campaign = find(campaign_attr["id"]).tap{ |c| campaign_attr.each{ |k, v| c.send("#{k}=", v) } }
51
- puts campaign.inspect
52
51
  campaign
53
52
  end
54
53
 
data/lib/mailjet/list.rb CHANGED
@@ -12,7 +12,13 @@ module Mailjet
12
12
  contacts = params.map{|p| p.is_a?(Mailjet::Contact) ? p.email.to_s : p.to_s }.reject(&:blank?)
13
13
  (options.delete(:api) || Mailjet::Api.singleton).listsAddmanycontacts(options.reverse_merge(:contacts => contacts.to_json, :id => self.id), 'Post')["status"]
14
14
  end
15
-
15
+
16
+ def unsubscribe_contact(*params)
17
+ options = params.last.is_a?(Hash) ? params.pop : {}
18
+ contact = params.map{|p| p.is_a?(Mailjet::Contact) ? p.email.to_s : p.to_s }.reject(&:blank?).first
19
+ (options.delete(:api) || Mailjet::Api.singleton).listsUnsubcontact(options.reverse_merge(:contact => contact, :id => self.id), 'Post')["status"]
20
+ end
21
+
16
22
  def remove_contacts(*params)
17
23
  options = params.last.is_a?(Hash) ? params.pop : {}
18
24
  contacts = params.map{|p| p.is_a?(Mailjet::Contact) ? p.email.to_s : p.to_s }.reject(&:blank?)
@@ -32,7 +38,7 @@ module Mailjet
32
38
  def statistics(options = {})
33
39
  (options.delete(:api) || Mailjet::Api.singleton).listsStatistics(options.reverse_merge(:id => self.id))["statistics"]
34
40
  end
35
-
41
+
36
42
  def delete(options = {})
37
43
  (options.delete(:api) || Mailjet::Api.singleton).listsDelete(options.reverse_merge(:id => self.id))["status"]
38
44
  end
@@ -1,3 +1,3 @@
1
1
  module Mailjet
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -54,7 +54,7 @@ describe Mailjet::Campaign do
54
54
  dup.set_html(html_test).must_equal 'OK'
55
55
  dup.html.must_equal html_test
56
56
 
57
- sleep 10 # wait for the campaign to be send
57
+ sleep 20 # wait for the campaign to be send
58
58
  campaign = Mailjet::Campaign.find(campaign.id)
59
59
 
60
60
  # Mailjet::Campaign#contacts
@@ -40,7 +40,12 @@ describe Mailjet::List do
40
40
  contacts = list.contacts
41
41
  contacts.first.must_be_instance_of Mailjet::Contact
42
42
  contacts.map(&:email).sort.must_equal ["c1@contacts.com", "c2@contacts.com", "c3@contacts.com", "c4@contacts.com", "c5@contacts.com"]
43
-
43
+
44
+ # Mailjet::List#unsubscribe_contact
45
+ list.unsubscribe_contact("c1@contacts.com").must_equal "OK"
46
+ exception = proc {list.unsubscribe_contact("c1@contacts.com")}.must_raise(Mailjet::ApiError)
47
+ exception.to_s.must_match /This contact is already unsub./
48
+
44
49
  # Mailjet::List#remove_contacts
45
50
  list.remove_contacts.must_equal "NotModified"
46
51
  list.remove_contacts("does-not-exist@nowhere.com").must_equal "NotModified"
@@ -18,7 +18,7 @@ describe Mailjet::Reporting do
18
18
  Mailjet::Reporting.statistics["cnt_messages"].wont_be_nil
19
19
 
20
20
  # Mailjet::Reporting.geolocation
21
- Mailjet::Reporting.geolocation.must_be_instance_of Hash
21
+ Mailjet::Reporting.geolocation.must_be_instance_of Array
22
22
 
23
23
  # Mailjet::Reporting.agents
24
24
  Mailjet::Reporting.agents.must_be_instance_of Array
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mailjet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aurélien AMILIN
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-28 00:00:00.000000000 Z
12
+ date: 2013-10-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -25,6 +25,20 @@ dependencies:
25
25
  - - '>='
26
26
  - !ruby/object:Gem::Version
27
27
  version: 3.1.0
28
+ - !ruby/object:Gem::Dependency
29
+ name: rack
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - '>='
33
+ - !ruby/object:Gem::Version
34
+ version: 1.4.0
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - '>='
40
+ - !ruby/object:Gem::Version
41
+ version: 1.4.0
28
42
  - !ruby/object:Gem::Dependency
29
43
  name: actionmailer
30
44
  requirement: !ruby/object:Gem::Requirement