sendgrid_toolkit 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/.rvmrc CHANGED
@@ -1,3 +1,3 @@
1
1
  export RUBYOPT="rubygems"
2
2
  export RUBYLIB="."
3
- rvm 1.9.2@sendgrid_toolkit
3
+ rvm 1.9.3@sendgrid_toolkit --create
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.1
1
+ 1.2.0
@@ -7,6 +7,7 @@ require 'sendgrid_toolkit/statistics'
7
7
  require 'sendgrid_toolkit/unsubscribes'
8
8
  require 'sendgrid_toolkit/spam_reports'
9
9
  require 'sendgrid_toolkit/bounces'
10
+ require 'sendgrid_toolkit/blocks'
10
11
  require 'sendgrid_toolkit/invalid_emails'
11
12
  require 'sendgrid_toolkit/mail'
12
13
 
@@ -0,0 +1,7 @@
1
+ module SendgridToolkit
2
+
3
+ class Blocks < AbstractSendgridClient
4
+ include SendgridToolkit::Common
5
+ end
6
+
7
+ end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "sendgrid_toolkit"
8
- s.version = "1.1.1"
8
+ s.version = "1.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Robby Grossman"]
12
- s.date = "2012-02-16"
12
+ s.date = "2012-08-14"
13
13
  s.description = "A Ruby wrapper and utility library for communicating with the Sendgrid API."
14
14
  s.email = "robby@freerobby.com"
15
15
  s.extra_rdoc_files = [
@@ -26,6 +26,7 @@ Gem::Specification.new do |s|
26
26
  "VERSION",
27
27
  "lib/sendgrid_toolkit.rb",
28
28
  "lib/sendgrid_toolkit/abstract_sendgrid_client.rb",
29
+ "lib/sendgrid_toolkit/blocks.rb",
29
30
  "lib/sendgrid_toolkit/bounces.rb",
30
31
  "lib/sendgrid_toolkit/common.rb",
31
32
  "lib/sendgrid_toolkit/invalid_emails.rb",
@@ -37,6 +38,7 @@ Gem::Specification.new do |s|
37
38
  "sendgrid_toolkit.gemspec",
38
39
  "spec/helper.rb",
39
40
  "spec/lib/sendgrid_toolkit/abstract_sendgrid_client_spec.rb",
41
+ "spec/lib/sendgrid_toolkit/blocks_spec.rb",
40
42
  "spec/lib/sendgrid_toolkit/bounces_spec.rb",
41
43
  "spec/lib/sendgrid_toolkit/common_spec.rb",
42
44
  "spec/lib/sendgrid_toolkit/invalid_emails_spec.rb",
@@ -50,7 +52,7 @@ Gem::Specification.new do |s|
50
52
  s.homepage = "http://github.com/freerobby/sendgrid_toolkit"
51
53
  s.licenses = ["MIT"]
52
54
  s.require_paths = ["lib"]
53
- s.rubygems_version = "1.8.10"
55
+ s.rubygems_version = "1.8.24"
54
56
  s.summary = "sendgrid_toolkit = Sendgrid + Ruby"
55
57
 
56
58
  if s.respond_to? :specification_version then
@@ -0,0 +1,52 @@
1
+ require File.expand_path("#{File.dirname(__FILE__)}/../../helper")
2
+
3
+ describe SendgridToolkit::Blocks do
4
+ before do
5
+ FakeWeb.clean_registry
6
+ @obj = SendgridToolkit::Blocks.new("fakeuser", "fakepass")
7
+ end
8
+
9
+ describe "#retrieve" do
10
+ it "returns array of bounced emails" do
11
+ FakeWeb.register_uri(:post, %r|https://sendgrid\.com/api/blocks\.get\.json\?|, :body => '[{"email":"email1@domain.com","status":"5.1.1","reason":"host [127.0.0.1] said: 550 5.1.1 unknown or illegal user: email1@domain.com"},{"email":"email2@domain2.com","status":"5.1.1","reason":"host [127.0.0.1] said: 550 5.1.1 unknown or illegal user: email2@domain2.com"}]')
12
+ blocks = @obj.retrieve
13
+ blocks[0]['email'].should == "email1@domain.com"
14
+ blocks[0]['status'].should == "5.1.1"
15
+ blocks[0]['reason'].should == "host [127.0.0.1] said: 550 5.1.1 unknown or illegal user: email1@domain.com"
16
+ end
17
+ end
18
+
19
+ describe "#retrieve_with_timestamps" do
20
+ it "parses timestamps" do
21
+ FakeWeb.register_uri(:post, %r|https://sendgrid\.com/api/blocks\.get\.json\?.*date=1|, :body => '[{"email":"email1@domain.com","status":"5.1.1","reason":"host [127.0.0.1] said: 550 5.1.1 unknown or illegal user: email1@domain.com","created":"2009-06-01 19:41:39"},{"email":"email2@domain2.com","status":"5.1.1","reason":"host [127.0.0.1] said: 550 5.1.1 unknown or illegal user: email2@domain2.com","created":"2009-06-12 19:41:39"}]')
22
+ blocks = @obj.retrieve_with_timestamps
23
+ 0.upto(1) do |index|
24
+ blocks[index]['created'].kind_of?(Time).should == true
25
+ end
26
+ blocks[0]['created'].asctime.should == "Mon Jun 1 19:41:39 2009"
27
+ blocks[1]['created'].asctime.should == "Fri Jun 12 19:41:39 2009"
28
+ end
29
+ end
30
+
31
+ describe "#delete" do
32
+ it "raises no errors on success" do
33
+ FakeWeb.register_uri(:post, %r|https://sendgrid\.com/api/blocks\.delete\.json\?.*email=.+|, :body => '{"message":"success"}')
34
+ lambda {
35
+ @obj.delete :email => "user@domain.com"
36
+ }.should_not raise_error
37
+ end
38
+ it "raises error when email address does not exist" do
39
+ FakeWeb.register_uri(:post, %r|https://sendgrid\.com/api/blocks\.delete\.json\?.*email=.+|, :body => '{"message":"Email does not exist"}')
40
+ lambda {
41
+ @obj.delete :email => "user@domain.com"
42
+ }.should raise_error SendgridToolkit::EmailDoesNotExist
43
+ end
44
+ it "does not choke if response does not have a 'message' field" do
45
+ FakeWeb.register_uri(:post, %r|https://sendgrid\.com/api/blocks\.delete\.json\?.*email=.+|, :body => '{}')
46
+ lambda {
47
+ @obj.delete :email => "user@domain.com"
48
+ }.should_not raise_error
49
+ end
50
+ end
51
+
52
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sendgrid_toolkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-16 00:00:00.000000000Z
12
+ date: 2012-08-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: httparty
16
- requirement: &70179196616160 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: 0.7.6
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70179196616160
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 0.7.6
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: bundler
27
- requirement: &70179196615120 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ~>
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: 1.0.0
33
38
  type: :development
34
39
  prerelease: false
35
- version_requirements: *70179196615120
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 1.0.0
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: fakeweb
38
- requirement: &70179196614160 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ~>
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: 1.3.0
44
54
  type: :development
45
55
  prerelease: false
46
- version_requirements: *70179196614160
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 1.3.0
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: jeweler
49
- requirement: &70179196613020 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ~>
@@ -54,10 +69,15 @@ dependencies:
54
69
  version: 1.6.4
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *70179196613020
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 1.6.4
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: rspec
60
- requirement: &70179196612180 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ~>
@@ -65,7 +85,12 @@ dependencies:
65
85
  version: 2.7.0
66
86
  type: :development
67
87
  prerelease: false
68
- version_requirements: *70179196612180
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 2.7.0
69
94
  description: A Ruby wrapper and utility library for communicating with the Sendgrid
70
95
  API.
71
96
  email: robby@freerobby.com
@@ -84,6 +109,7 @@ files:
84
109
  - VERSION
85
110
  - lib/sendgrid_toolkit.rb
86
111
  - lib/sendgrid_toolkit/abstract_sendgrid_client.rb
112
+ - lib/sendgrid_toolkit/blocks.rb
87
113
  - lib/sendgrid_toolkit/bounces.rb
88
114
  - lib/sendgrid_toolkit/common.rb
89
115
  - lib/sendgrid_toolkit/invalid_emails.rb
@@ -95,6 +121,7 @@ files:
95
121
  - sendgrid_toolkit.gemspec
96
122
  - spec/helper.rb
97
123
  - spec/lib/sendgrid_toolkit/abstract_sendgrid_client_spec.rb
124
+ - spec/lib/sendgrid_toolkit/blocks_spec.rb
98
125
  - spec/lib/sendgrid_toolkit/bounces_spec.rb
99
126
  - spec/lib/sendgrid_toolkit/common_spec.rb
100
127
  - spec/lib/sendgrid_toolkit/invalid_emails_spec.rb
@@ -119,7 +146,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
119
146
  version: '0'
120
147
  segments:
121
148
  - 0
122
- hash: 4463895063541210779
149
+ hash: -2495959361367447687
123
150
  required_rubygems_version: !ruby/object:Gem::Requirement
124
151
  none: false
125
152
  requirements:
@@ -128,7 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
128
155
  version: '0'
129
156
  requirements: []
130
157
  rubyforge_project:
131
- rubygems_version: 1.8.10
158
+ rubygems_version: 1.8.24
132
159
  signing_key:
133
160
  specification_version: 3
134
161
  summary: sendgrid_toolkit = Sendgrid + Ruby