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,65 @@
1
+ require 'spec_helper'
2
+
3
+ describe Sendgrid::Newsletter::Recipient do
4
+ before do
5
+ Sendgrid::Newsletter::Config.api_user = 'news_test'
6
+ Sendgrid::Newsletter::Config.api_key = 'testnewsletter'
7
+ end
8
+ subject { Sendgrid::Newsletter::Recipient.new }
9
+ describe '#add' do
10
+ it 'should require name param' do
11
+ lambda {
12
+ subject.add
13
+ }.should raise_error ArgumentError
14
+ end
15
+
16
+ it 'should require list param' do
17
+ lambda {
18
+ subject.add name: 'Cool News'
19
+ }.should raise_error ArgumentError
20
+ end
21
+
22
+ it 'should return {"message" => "success"} when succesffuly attached emails' do
23
+ VCR.use_cassette('adding_recipients_to_newsletter') do
24
+ subject.add(name: 'Cool News', list: 'cool_list').should eql({'message' => 'success'})
25
+ end
26
+ end
27
+
28
+ it 'should raise APIError if API return {"error": "message"}' do
29
+ VCR.use_cassette('error_adding_recipients_to_newsletter') do
30
+ lambda {
31
+ subject.add(name: 'Bad News', list: 'bad_list')
32
+ }.should raise_error Sendgrid::Newsletter::APIError
33
+ end
34
+ end
35
+ end
36
+
37
+ describe '#delete' do
38
+ it 'should require name param' do
39
+ lambda {
40
+ subject.delete
41
+ }.should raise_error ArgumentError
42
+ end
43
+
44
+ it 'should require list param' do
45
+ lambda {
46
+ subject.delete name: 'Cool News'
47
+ }.should raise_error ArgumentError
48
+ end
49
+
50
+ it 'should return {"message" => "success"} when succesffuly destroyied recipient' do
51
+ VCR.use_cassette('removing_recipients_from_newsletter') do
52
+ subject.delete(name: 'Cool News', list: 'cool_list').should eql({'message' => 'success'})
53
+ end
54
+ end
55
+
56
+ it 'should raise APIError if API return {"error": "message"}' do
57
+ VCR.use_cassette('error_removing_recipients_to_newsletter') do
58
+ lambda {
59
+ subject.delete(name: 'Bad News', list: 'bad_list')
60
+ }.should raise_error Sendgrid::Newsletter::APIError
61
+ end
62
+ end
63
+ end
64
+ end
65
+
@@ -0,0 +1,52 @@
1
+ require 'spec_helper'
2
+
3
+ describe Sendgrid::Newsletter::Schedule do
4
+ before do
5
+ Sendgrid::Newsletter::Config.api_user = 'news_test'
6
+ Sendgrid::Newsletter::Config.api_key = 'testnewsletter'
7
+ end
8
+ subject { Sendgrid::Newsletter::Schedule.new }
9
+ describe '#add' do
10
+ it 'should require name param' do
11
+ lambda {
12
+ subject.add
13
+ }.should raise_error ArgumentError
14
+ end
15
+
16
+ it 'should return {"message" => "success"} when succesffuly scheduled ?' do
17
+ VCR.use_cassette('adding_schedule_to_newsletter') do
18
+ subject.add(name: 'Cool News', after: 90).should eql({'message' => 'success'})
19
+ end
20
+ end
21
+
22
+ it 'should raise APIError if API return {"error": "message"}' do
23
+ VCR.use_cassette('error_adding_schedule_to_newsletter') do
24
+ lambda {
25
+ subject.add(name: 'Bad News')
26
+ }.should raise_error Sendgrid::Newsletter::APIError
27
+ end
28
+ end
29
+ end
30
+
31
+ describe '#delete' do
32
+ it 'should require name param' do
33
+ lambda {
34
+ subject.delete
35
+ }.should raise_error ArgumentError
36
+ end
37
+
38
+ it 'should return {"message" => "success"} when succesffuly destroyied schedule' do
39
+ VCR.use_cassette('removing_schedule_from_newsletter') do
40
+ subject.delete(name: 'Cool News').should eql({'message' => 'success'})
41
+ end
42
+ end
43
+
44
+ it 'should raise APIError if API return {"error": "message"}' do
45
+ VCR.use_cassette('error_removing_schedule_to_newsletter') do
46
+ lambda {
47
+ subject.delete(name: 'Bad News')
48
+ }.should raise_error Sendgrid::Newsletter::APIError
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,16 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ require 'vcr'
4
+ require 'simplecov'
5
+
6
+ VCR.configure do |c|
7
+ c.cassette_library_dir = File.expand_path('../fixtures/vcr_cassettes', __FILE__)
8
+ c.hook_into :webmock
9
+ end
10
+
11
+ require File.expand_path('../../lib/sendgrid-newsletter', __FILE__)
12
+ require 'rspec'
13
+
14
+ RSpec.configure do |config|
15
+ config.mock_with :rspec
16
+ end
metadata ADDED
@@ -0,0 +1,180 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sendgrid-newsletter
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Nelson Haraguchi
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-03-31 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rspec
16
+ requirement: &70134501176640 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 2.9.0
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: *70134501176640
25
+ - !ruby/object:Gem::Dependency
26
+ name: vcr
27
+ requirement: &70134501176140 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: 2.0.0
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70134501176140
36
+ - !ruby/object:Gem::Dependency
37
+ name: webmock
38
+ requirement: &70134501175680 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: 1.8.4
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70134501175680
47
+ - !ruby/object:Gem::Dependency
48
+ name: httparty
49
+ requirement: &70134501175220 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '0.1'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: *70134501175220
58
+ - !ruby/object:Gem::Dependency
59
+ name: json
60
+ requirement: &70134501174760 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ~>
64
+ - !ruby/object:Gem::Version
65
+ version: '1.0'
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: *70134501174760
69
+ description: Sendgrid Newsletter API in Ruby
70
+ email:
71
+ - nelsonmhjr@gmail.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - .gitignore
77
+ - .rspec
78
+ - .simplecov
79
+ - Gemfile
80
+ - Guardfile
81
+ - LICENSE
82
+ - README.md
83
+ - Rakefile
84
+ - lib/sendgrid-newsletter.rb
85
+ - lib/sendgrid-newsletter/base.rb
86
+ - lib/sendgrid-newsletter/config.rb
87
+ - lib/sendgrid-newsletter/email.rb
88
+ - lib/sendgrid-newsletter/errors.rb
89
+ - lib/sendgrid-newsletter/list.rb
90
+ - lib/sendgrid-newsletter/newsletter.rb
91
+ - lib/sendgrid-newsletter/recipient.rb
92
+ - lib/sendgrid-newsletter/schedule.rb
93
+ - lib/sendgrid-newsletter/version.rb
94
+ - sendgrid-newsletter.gemspec
95
+ - spec/fixtures/vcr_cassettes/adding_bulk_emails_on_list.yml
96
+ - spec/fixtures/vcr_cassettes/adding_emails_on_list.yml
97
+ - spec/fixtures/vcr_cassettes/adding_emails_with_data_on_list.yml
98
+ - spec/fixtures/vcr_cassettes/adding_recipients_to_newsletter.yml
99
+ - spec/fixtures/vcr_cassettes/adding_schedule_to_newsletter.yml
100
+ - spec/fixtures/vcr_cassettes/check_newsletter.yml
101
+ - spec/fixtures/vcr_cassettes/create_list_successfully.yml
102
+ - spec/fixtures/vcr_cassettes/delete_list_successfully.yml
103
+ - spec/fixtures/vcr_cassettes/error_adding_emails_on_list.yml
104
+ - spec/fixtures/vcr_cassettes/error_adding_recipients_to_newsletter.yml
105
+ - spec/fixtures/vcr_cassettes/error_adding_schedule_to_newsletter.yml
106
+ - spec/fixtures/vcr_cassettes/error_removing_recipients_to_newsletter.yml
107
+ - spec/fixtures/vcr_cassettes/error_removing_schedule_to_newsletter.yml
108
+ - spec/fixtures/vcr_cassettes/existent_check_newsletter.yml
109
+ - spec/fixtures/vcr_cassettes/existent_identity.yml
110
+ - spec/fixtures/vcr_cassettes/existent_identity_on_edit.yml
111
+ - spec/fixtures/vcr_cassettes/inexistent_identity.yml
112
+ - spec/fixtures/vcr_cassettes/inexistent_identity_on_edit.yml
113
+ - spec/fixtures/vcr_cassettes/list_exist.yml
114
+ - spec/fixtures/vcr_cassettes/list_newsletter.yml
115
+ - spec/fixtures/vcr_cassettes/list_non_exist_on_deletion.yml
116
+ - spec/fixtures/vcr_cassettes/removing_recipients_from_newsletter.yml
117
+ - spec/fixtures/vcr_cassettes/removing_schedule_from_newsletter.yml
118
+ - spec/sendgrid-newsletter/config_spec.rb
119
+ - spec/sendgrid-newsletter/email_spec.rb
120
+ - spec/sendgrid-newsletter/list_spec.rb
121
+ - spec/sendgrid-newsletter/newsletter_spec.rb
122
+ - spec/sendgrid-newsletter/recipient_spec.rb
123
+ - spec/sendgrid-newsletter/schedule_spec.rb
124
+ - spec/spec_helper.rb
125
+ homepage: ''
126
+ licenses: []
127
+ post_install_message:
128
+ rdoc_options: []
129
+ require_paths:
130
+ - lib
131
+ required_ruby_version: !ruby/object:Gem::Requirement
132
+ none: false
133
+ requirements:
134
+ - - ! '>='
135
+ - !ruby/object:Gem::Version
136
+ version: '0'
137
+ required_rubygems_version: !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ requirements: []
144
+ rubyforge_project:
145
+ rubygems_version: 1.8.17
146
+ signing_key:
147
+ specification_version: 3
148
+ summary: Send a Newsletter with Sendgrid API (Alpha), just some methods implemented.
149
+ Use gatling_gun or newslettre instead
150
+ test_files:
151
+ - spec/fixtures/vcr_cassettes/adding_bulk_emails_on_list.yml
152
+ - spec/fixtures/vcr_cassettes/adding_emails_on_list.yml
153
+ - spec/fixtures/vcr_cassettes/adding_emails_with_data_on_list.yml
154
+ - spec/fixtures/vcr_cassettes/adding_recipients_to_newsletter.yml
155
+ - spec/fixtures/vcr_cassettes/adding_schedule_to_newsletter.yml
156
+ - spec/fixtures/vcr_cassettes/check_newsletter.yml
157
+ - spec/fixtures/vcr_cassettes/create_list_successfully.yml
158
+ - spec/fixtures/vcr_cassettes/delete_list_successfully.yml
159
+ - spec/fixtures/vcr_cassettes/error_adding_emails_on_list.yml
160
+ - spec/fixtures/vcr_cassettes/error_adding_recipients_to_newsletter.yml
161
+ - spec/fixtures/vcr_cassettes/error_adding_schedule_to_newsletter.yml
162
+ - spec/fixtures/vcr_cassettes/error_removing_recipients_to_newsletter.yml
163
+ - spec/fixtures/vcr_cassettes/error_removing_schedule_to_newsletter.yml
164
+ - spec/fixtures/vcr_cassettes/existent_check_newsletter.yml
165
+ - spec/fixtures/vcr_cassettes/existent_identity.yml
166
+ - spec/fixtures/vcr_cassettes/existent_identity_on_edit.yml
167
+ - spec/fixtures/vcr_cassettes/inexistent_identity.yml
168
+ - spec/fixtures/vcr_cassettes/inexistent_identity_on_edit.yml
169
+ - spec/fixtures/vcr_cassettes/list_exist.yml
170
+ - spec/fixtures/vcr_cassettes/list_newsletter.yml
171
+ - spec/fixtures/vcr_cassettes/list_non_exist_on_deletion.yml
172
+ - spec/fixtures/vcr_cassettes/removing_recipients_from_newsletter.yml
173
+ - spec/fixtures/vcr_cassettes/removing_schedule_from_newsletter.yml
174
+ - spec/sendgrid-newsletter/config_spec.rb
175
+ - spec/sendgrid-newsletter/email_spec.rb
176
+ - spec/sendgrid-newsletter/list_spec.rb
177
+ - spec/sendgrid-newsletter/newsletter_spec.rb
178
+ - spec/sendgrid-newsletter/recipient_spec.rb
179
+ - spec/sendgrid-newsletter/schedule_spec.rb
180
+ - spec/spec_helper.rb