sendgrid-newsletter 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. data/.gitignore +19 -0
  2. data/.rspec +1 -0
  3. data/.simplecov +7 -0
  4. data/Gemfile +11 -0
  5. data/Guardfile +19 -0
  6. data/LICENSE +22 -0
  7. data/README.md +29 -0
  8. data/Rakefile +15 -0
  9. data/lib/sendgrid-newsletter.rb +16 -0
  10. data/lib/sendgrid-newsletter/base.rb +20 -0
  11. data/lib/sendgrid-newsletter/config.rb +9 -0
  12. data/lib/sendgrid-newsletter/email.rb +26 -0
  13. data/lib/sendgrid-newsletter/errors.rb +8 -0
  14. data/lib/sendgrid-newsletter/list.rb +22 -0
  15. data/lib/sendgrid-newsletter/newsletter.rb +29 -0
  16. data/lib/sendgrid-newsletter/recipient.rb +22 -0
  17. data/lib/sendgrid-newsletter/schedule.rb +22 -0
  18. data/lib/sendgrid-newsletter/version.rb +5 -0
  19. data/sendgrid-newsletter.gemspec +22 -0
  20. data/spec/fixtures/vcr_cassettes/adding_bulk_emails_on_list.yml +806 -0
  21. data/spec/fixtures/vcr_cassettes/adding_emails_on_list.yml +31 -0
  22. data/spec/fixtures/vcr_cassettes/adding_emails_with_data_on_list.yml +32 -0
  23. data/spec/fixtures/vcr_cassettes/adding_recipients_to_newsletter.yml +30 -0
  24. data/spec/fixtures/vcr_cassettes/adding_schedule_to_newsletter.yml +30 -0
  25. data/spec/fixtures/vcr_cassettes/check_newsletter.yml +30 -0
  26. data/spec/fixtures/vcr_cassettes/create_list_successfully.yml +30 -0
  27. data/spec/fixtures/vcr_cassettes/delete_list_successfully.yml +30 -0
  28. data/spec/fixtures/vcr_cassettes/error_adding_emails_on_list.yml +31 -0
  29. data/spec/fixtures/vcr_cassettes/error_adding_recipients_to_newsletter.yml +30 -0
  30. data/spec/fixtures/vcr_cassettes/error_adding_schedule_to_newsletter.yml +30 -0
  31. data/spec/fixtures/vcr_cassettes/error_removing_recipients_to_newsletter.yml +30 -0
  32. data/spec/fixtures/vcr_cassettes/error_removing_schedule_to_newsletter.yml +30 -0
  33. data/spec/fixtures/vcr_cassettes/existent_check_newsletter.yml +30 -0
  34. data/spec/fixtures/vcr_cassettes/existent_identity.yml +30 -0
  35. data/spec/fixtures/vcr_cassettes/existent_identity_on_edit.yml +30 -0
  36. data/spec/fixtures/vcr_cassettes/inexistent_identity.yml +30 -0
  37. data/spec/fixtures/vcr_cassettes/inexistent_identity_on_edit.yml +30 -0
  38. data/spec/fixtures/vcr_cassettes/list_exist.yml +30 -0
  39. data/spec/fixtures/vcr_cassettes/list_newsletter.yml +30 -0
  40. data/spec/fixtures/vcr_cassettes/list_non_exist_on_deletion.yml +30 -0
  41. data/spec/fixtures/vcr_cassettes/removing_recipients_from_newsletter.yml +30 -0
  42. data/spec/fixtures/vcr_cassettes/removing_schedule_from_newsletter.yml +30 -0
  43. data/spec/sendgrid-newsletter/config_spec.rb +20 -0
  44. data/spec/sendgrid-newsletter/email_spec.rb +63 -0
  45. data/spec/sendgrid-newsletter/list_spec.rb +54 -0
  46. data/spec/sendgrid-newsletter/newsletter_spec.rb +115 -0
  47. data/spec/sendgrid-newsletter/recipient_spec.rb +65 -0
  48. data/spec/sendgrid-newsletter/schedule_spec.rb +52 -0
  49. data/spec/spec_helper.rb +16 -0
  50. metadata +180 -0
@@ -0,0 +1,31 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://sendgrid.com/api/newsletter/lists/email/add.json?api_key=testnewsletter&api_user=news_test
6
+ body:
7
+ encoding: US-ASCII
8
+ string: list=cool_list&data[]={"name":"foo bar","email":"foo@bar.com"}&data[]={"name":"foo2
9
+ bar","email":"foo2@bar.com"}
10
+ headers: {}
11
+ response:
12
+ status:
13
+ code: 200
14
+ message: OK
15
+ headers:
16
+ Server:
17
+ - nginx/0.7.65
18
+ Date:
19
+ - Wed, 21 Mar 2012 21:40:41 GMT
20
+ Content-Type:
21
+ - text/html
22
+ Transfer-Encoding:
23
+ - chunked
24
+ Connection:
25
+ - keep-alive
26
+ body:
27
+ encoding: US-ASCII
28
+ string: ! '{"inserted": 2}'
29
+ http_version: !!null
30
+ recorded_at: Wed, 21 Mar 2012 21:40:41 GMT
31
+ recorded_with: VCR 2.0.0
@@ -0,0 +1,32 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://sendgrid.com/api/newsletter/lists/email/add.json?api_key=testnewsletter&api_user=news_test
6
+ body:
7
+ encoding: US-ASCII
8
+ string: list=cool_list&data[]={"name":"foo bar","email":"foo@bar.com","address":"1
9
+ Street, 0"}&data[]={"name":"foo2 bar","email":"foo2@bar.com","address":"1
10
+ Street, 3"}
11
+ headers: {}
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ Server:
18
+ - nginx/0.7.65
19
+ Date:
20
+ - Sat, 31 Mar 2012 13:25:02 GMT
21
+ Content-Type:
22
+ - text/html
23
+ Transfer-Encoding:
24
+ - chunked
25
+ Connection:
26
+ - keep-alive
27
+ body:
28
+ encoding: US-ASCII
29
+ string: ! '{"inserted": 2}'
30
+ http_version: !!null
31
+ recorded_at: Sat, 31 Mar 2012 13:25:02 GMT
32
+ recorded_with: VCR 2.0.0
@@ -0,0 +1,30 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://sendgrid.com/api/newsletter/recipients/add.json?api_key=testnewsletter&api_user=news_test
6
+ body:
7
+ encoding: US-ASCII
8
+ string: name=Cool%20News&list=cool_list
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ Server:
16
+ - nginx/0.7.65
17
+ Date:
18
+ - Thu, 22 Mar 2012 01:53:08 GMT
19
+ Content-Type:
20
+ - text/html
21
+ Transfer-Encoding:
22
+ - chunked
23
+ Connection:
24
+ - keep-alive
25
+ body:
26
+ encoding: US-ASCII
27
+ string: ! '{"message": "success"}'
28
+ http_version: !!null
29
+ recorded_at: Thu, 22 Mar 2012 01:53:08 GMT
30
+ recorded_with: VCR 2.0.0
@@ -0,0 +1,30 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://sendgrid.com/api/newsletter/schedule/add.json?api_key=testnewsletter&api_user=news_test
6
+ body:
7
+ encoding: US-ASCII
8
+ string: name=Cool%20News&after=90
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ Server:
16
+ - nginx/0.7.65
17
+ Date:
18
+ - Thu, 22 Mar 2012 02:40:24 GMT
19
+ Content-Type:
20
+ - text/html
21
+ Transfer-Encoding:
22
+ - chunked
23
+ Connection:
24
+ - keep-alive
25
+ body:
26
+ encoding: US-ASCII
27
+ string: ! '{"message": "success"}'
28
+ http_version: !!null
29
+ recorded_at: Thu, 22 Mar 2012 02:40:23 GMT
30
+ recorded_with: VCR 2.0.0
@@ -0,0 +1,30 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://sendgrid.com/api/newsletter/list.json?api_key=testnewsletter&api_user=news_test&name=Inexistent%20News
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ Server:
16
+ - nginx/0.7.65
17
+ Date:
18
+ - Fri, 30 Mar 2012 18:11:09 GMT
19
+ Content-Type:
20
+ - text/html
21
+ Transfer-Encoding:
22
+ - chunked
23
+ Connection:
24
+ - keep-alive
25
+ body:
26
+ encoding: US-ASCII
27
+ string: ! '[]'
28
+ http_version: !!null
29
+ recorded_at: Fri, 30 Mar 2012 18:11:09 GMT
30
+ recorded_with: VCR 2.0.0
@@ -0,0 +1,30 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://sendgrid.com/api/newsletter/lists/add.json?api_key=testnewsletter&api_user=news_test
6
+ body:
7
+ encoding: US-ASCII
8
+ string: list=Cool%20List
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ Server:
16
+ - nginx/0.7.65
17
+ Date:
18
+ - Tue, 20 Mar 2012 22:02:30 GMT
19
+ Content-Type:
20
+ - text/html
21
+ Transfer-Encoding:
22
+ - chunked
23
+ Connection:
24
+ - keep-alive
25
+ body:
26
+ encoding: US-ASCII
27
+ string: ! '{"message": "success"}'
28
+ http_version: !!null
29
+ recorded_at: Tue, 20 Mar 2012 22:02:30 GMT
30
+ recorded_with: VCR 2.0.0
@@ -0,0 +1,30 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://sendgrid.com/api/newsletter/lists/delete.json?api_key=testnewsletter&api_user=news_test
6
+ body:
7
+ encoding: US-ASCII
8
+ string: list=Cool%20List
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ Server:
16
+ - nginx/0.7.65
17
+ Date:
18
+ - Thu, 22 Mar 2012 02:01:34 GMT
19
+ Content-Type:
20
+ - text/html
21
+ Transfer-Encoding:
22
+ - chunked
23
+ Connection:
24
+ - keep-alive
25
+ body:
26
+ encoding: US-ASCII
27
+ string: ! '{"message": "success"}'
28
+ http_version: !!null
29
+ recorded_at: Thu, 22 Mar 2012 02:01:34 GMT
30
+ recorded_with: VCR 2.0.0
@@ -0,0 +1,31 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://sendgrid.com/api/newsletter/lists/email/add.json?api_key=testnewsletter&api_user=news_test
6
+ body:
7
+ encoding: US-ASCII
8
+ string: list=bad_list&data[]={"name":"foo bar","email":"foo@bar.com"}&data[]={"name":"foo2
9
+ bar","email":"foo2@bar.com"}
10
+ headers: {}
11
+ response:
12
+ status:
13
+ code: 401
14
+ message: Unauthorized
15
+ headers:
16
+ Server:
17
+ - nginx/0.7.65
18
+ Date:
19
+ - Wed, 21 Mar 2012 21:37:58 GMT
20
+ Content-Type:
21
+ - text/html
22
+ Transfer-Encoding:
23
+ - chunked
24
+ Connection:
25
+ - keep-alive
26
+ body:
27
+ encoding: US-ASCII
28
+ string: ! '{"error": "bad_list does not exist"}'
29
+ http_version: !!null
30
+ recorded_at: Wed, 21 Mar 2012 21:37:58 GMT
31
+ recorded_with: VCR 2.0.0
@@ -0,0 +1,30 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://sendgrid.com/api/newsletter/recipients/add.json?api_key=testnewsletter&api_user=news_test
6
+ body:
7
+ encoding: US-ASCII
8
+ string: name=Bad%20News&list=bad_list
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 401
13
+ message: Unauthorized
14
+ headers:
15
+ Server:
16
+ - nginx/0.7.65
17
+ Date:
18
+ - Thu, 22 Mar 2012 01:50:08 GMT
19
+ Content-Type:
20
+ - text/html
21
+ Transfer-Encoding:
22
+ - chunked
23
+ Connection:
24
+ - keep-alive
25
+ body:
26
+ encoding: US-ASCII
27
+ string: ! '{"error": "Bad News does not exist"}'
28
+ http_version: !!null
29
+ recorded_at: Thu, 22 Mar 2012 01:50:08 GMT
30
+ recorded_with: VCR 2.0.0
@@ -0,0 +1,30 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://sendgrid.com/api/newsletter/schedule/add.json?api_key=testnewsletter&api_user=news_test
6
+ body:
7
+ encoding: US-ASCII
8
+ string: name=Bad%20News
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 401
13
+ message: Unauthorized
14
+ headers:
15
+ Server:
16
+ - nginx/0.7.65
17
+ Date:
18
+ - Thu, 22 Mar 2012 02:40:26 GMT
19
+ Content-Type:
20
+ - text/html
21
+ Transfer-Encoding:
22
+ - chunked
23
+ Connection:
24
+ - keep-alive
25
+ body:
26
+ encoding: US-ASCII
27
+ string: ! '{"error": "Bad News does not exist"}'
28
+ http_version: !!null
29
+ recorded_at: Thu, 22 Mar 2012 02:40:24 GMT
30
+ recorded_with: VCR 2.0.0
@@ -0,0 +1,30 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://sendgrid.com/api/newsletter/recipients/delete.json?api_key=testnewsletter&api_user=news_test
6
+ body:
7
+ encoding: US-ASCII
8
+ string: name=Bad%20News&list=bad_list
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 401
13
+ message: Unauthorized
14
+ headers:
15
+ Server:
16
+ - nginx/0.7.65
17
+ Date:
18
+ - Thu, 22 Mar 2012 02:01:36 GMT
19
+ Content-Type:
20
+ - text/html
21
+ Transfer-Encoding:
22
+ - chunked
23
+ Connection:
24
+ - keep-alive
25
+ body:
26
+ encoding: US-ASCII
27
+ string: ! '{"error": "Bad News does not exist"}'
28
+ http_version: !!null
29
+ recorded_at: Thu, 22 Mar 2012 02:01:36 GMT
30
+ recorded_with: VCR 2.0.0
@@ -0,0 +1,30 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://sendgrid.com/api/newsletter/schedule/delete.json?api_key=testnewsletter&api_user=news_test
6
+ body:
7
+ encoding: US-ASCII
8
+ string: name=Bad%20News
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 401
13
+ message: Unauthorized
14
+ headers:
15
+ Server:
16
+ - nginx/0.7.65
17
+ Date:
18
+ - Thu, 22 Mar 2012 02:40:28 GMT
19
+ Content-Type:
20
+ - text/html
21
+ Transfer-Encoding:
22
+ - chunked
23
+ Connection:
24
+ - keep-alive
25
+ body:
26
+ encoding: US-ASCII
27
+ string: ! '{"error": "Bad News does not exist"}'
28
+ http_version: !!null
29
+ recorded_at: Thu, 22 Mar 2012 02:40:26 GMT
30
+ recorded_with: VCR 2.0.0
@@ -0,0 +1,30 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://sendgrid.com/api/newsletter/list.json?api_key=testnewsletter&api_user=news_test&name=Cool%20News
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ Server:
16
+ - nginx/0.7.65
17
+ Date:
18
+ - Fri, 30 Mar 2012 18:19:10 GMT
19
+ Content-Type:
20
+ - text/html
21
+ Transfer-Encoding:
22
+ - chunked
23
+ Connection:
24
+ - keep-alive
25
+ body:
26
+ encoding: US-ASCII
27
+ string: ! '[{"name": "Cool News"}]'
28
+ http_version: !!null
29
+ recorded_at: Fri, 30 Mar 2012 18:19:10 GMT
30
+ recorded_with: VCR 2.0.0
@@ -0,0 +1,30 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://sendgrid.com/api/newsletter/add.json?api_key=testnewsletter&api_user=news_test
6
+ body:
7
+ encoding: US-ASCII
8
+ string: text=Text&html=Text&name=Beatiful%20news&identity=Beatiful%20Girl&subject=Text
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ Server:
16
+ - nginx/0.7.65
17
+ Date:
18
+ - Tue, 20 Mar 2012 21:05:00 GMT
19
+ Content-Type:
20
+ - text/html
21
+ Transfer-Encoding:
22
+ - chunked
23
+ Connection:
24
+ - keep-alive
25
+ body:
26
+ encoding: US-ASCII
27
+ string: ! '{"message": "success"}'
28
+ http_version: !!null
29
+ recorded_at: Tue, 20 Mar 2012 21:05:00 GMT
30
+ recorded_with: VCR 2.0.0
@@ -0,0 +1,30 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://sendgrid.com/api/newsletter/edit.json?api_key=testnewsletter&api_user=news_test
6
+ body:
7
+ encoding: US-ASCII
8
+ string: text=Text&html=Text&name=Beatiful%20news&newname=Beatiful%20news&identity=From%20Grubster&subject=Text
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ Server:
16
+ - nginx/0.7.65
17
+ Date:
18
+ - Sat, 31 Mar 2012 14:12:47 GMT
19
+ Content-Type:
20
+ - text/html
21
+ Transfer-Encoding:
22
+ - chunked
23
+ Connection:
24
+ - keep-alive
25
+ body:
26
+ encoding: US-ASCII
27
+ string: ! '{"message": "success"}'
28
+ http_version: !!null
29
+ recorded_at: Sat, 31 Mar 2012 14:12:47 GMT
30
+ recorded_with: VCR 2.0.0