sendgrid-rails 2.0.1 → 2.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,33 +1,32 @@
1
- class SendGrid::ApiHeader
2
- attr_reader :data
3
-
4
- def initialize
5
- @data = Hash.new { |h,k| h[k] = Hash.new(&h.default_proc) }
6
- end
7
-
8
- def add_recipients(recipients)
9
- @data[:to] = [] unless @data[:to].instance_of?(Array)
10
- @data[:to] |= Array.wrap(recipients)
11
- end
12
-
13
- def substitute(var, val)
14
- @data[:sub][var] = Array.wrap(val)
15
- end
16
-
17
- def uniq_args(val)
18
- @data[:unique_args] = val if val.instance_of?(Hash)
19
- end
20
-
21
- def category(cat)
22
- @data[:category] = cat
23
- end
24
-
25
- def add_filter_setting(fltr, setting, val)
26
- @data[:filters][fltr][:settings][setting] = val
27
- end
28
-
29
- def to_json
30
- @data.to_json
31
- end
32
- end
33
-
1
+ class SendGrid::ApiHeader
2
+ attr_reader :data
3
+
4
+ def initialize
5
+ @data = Hash.new { |h,k| h[k] = Hash.new(&h.default_proc) }
6
+ end
7
+
8
+ def add_recipients(recipients)
9
+ @data[:to] = [] unless @data[:to].instance_of?(Array)
10
+ @data[:to] |= Array.wrap(recipients)
11
+ end
12
+
13
+ def substitute(var, val)
14
+ @data[:sub][var] = Array.wrap(val)
15
+ end
16
+
17
+ def uniq_args(val)
18
+ @data[:unique_args] = val if val.instance_of?(Hash)
19
+ end
20
+
21
+ def category(cat)
22
+ @data[:category] = cat
23
+ end
24
+
25
+ def add_filter_setting(fltr, setting, val)
26
+ @data[:filters][fltr][:settings][setting] = val
27
+ end
28
+
29
+ def to_json
30
+ JSON.generate(@data, :array_nl => ' ')
31
+ end
32
+ end
@@ -1,4 +1,4 @@
1
- module SendGrid
2
- VERSION = "2.0.1"
3
- end
4
-
1
+ module SendGrid
2
+ VERSION = "2.0.2"
3
+ end
4
+
@@ -1,41 +1,41 @@
1
- require 'spec_helper'
2
-
3
- describe SendGrid::ApiHeader do
4
- let(:header) { SendGrid::ApiHeader.new }
5
- describe "#to_json" do
6
- it "returns valid json if no data was set" do
7
- header.to_json.should eql "{}"
8
- end
9
-
10
- it "contains 1 recipient (as array)" do
11
- header.add_recipients 'email@email.com'
12
- header.to_json.should eql '{"to":["email@email.com"]}'
13
- end
14
-
15
- it "contaions an array of recipients" do
16
- header.add_recipients %w(email1@email.com email2@email.com)
17
- header.to_json.should eql '{"to":["email1@email.com","email2@email.com"]}'
18
- end
19
-
20
- it "contains substitution" do
21
- header.substitute :var1, 'Hello'
22
- header.to_json.should eql '{"sub":{"var1":["Hello"]}}'
23
- end
24
-
25
- it "contains uniq args" do
26
- header.uniq_args :arg1 => 'val1'
27
- header.to_json.should eql '{"unique_args":{"arg1":"val1"}}'
28
- end
29
-
30
- it "contains category" do
31
- header.category 'category_name'
32
- header.to_json.should eql '{"category":"category_name"}'
33
- end
34
-
35
- it "contains filter settings" do
36
- header.add_filter_setting :filter1, :setting1, 'val1'
37
- header.to_json.should eql '{"filters":{"filter1":{"settings":{"setting1":"val1"}}}}'
38
- end
39
- end
40
- end
41
-
1
+ require 'spec_helper'
2
+
3
+ describe SendGrid::ApiHeader do
4
+ let(:header) { SendGrid::ApiHeader.new }
5
+ describe "#to_json" do
6
+ it "returns valid json if no data was set" do
7
+ header.to_json.should eql "{}"
8
+ end
9
+
10
+ it "contains 1 recipient (as array)" do
11
+ header.add_recipients 'email@email.com'
12
+ header.to_json.should eql '{"to":[ "email@email.com" ]}'
13
+ end
14
+
15
+ it "contaions an array of recipients" do
16
+ header.add_recipients %w(email1@email.com email2@email.com)
17
+ header.to_json.should eql '{"to":[ "email1@email.com", "email2@email.com" ]}'
18
+ end
19
+
20
+ it "contains substitution" do
21
+ header.substitute :var1, 'Hello'
22
+ header.to_json.should eql '{"sub":{"var1":[ "Hello" ]}}'
23
+ end
24
+
25
+ it "contains uniq args" do
26
+ header.uniq_args :arg1 => 'val1'
27
+ header.to_json.should eql '{"unique_args":{"arg1":"val1"}}'
28
+ end
29
+
30
+ it "contains category" do
31
+ header.category 'category_name'
32
+ header.to_json.should eql '{"category":"category_name"}'
33
+ end
34
+
35
+ it "contains filter settings" do
36
+ header.add_filter_setting :filter1, :setting1, 'val1'
37
+ header.to_json.should eql '{"filters":{"filter1":{"settings":{"setting1":"val1"}}}}'
38
+ end
39
+ end
40
+ end
41
+
data/spec/mailer_spec.rb CHANGED
@@ -1,32 +1,42 @@
1
- require 'spec_helper'
2
-
3
- describe Mailer do
4
- describe 'email with multiple recipients' do
5
- it 'set correct recipients in X-SMTAPI header' do
6
- Mailer.email_with_multiple_recipients(%w(em1@email.com em2@email.com)).deliver.header.to_s.
7
- should include('X-SMTPAPI: {"to":["em1@email.com","em2@email.com"]}')
8
- end
9
-
10
- it 'removes original TO header part' do
11
- Mailer.email_with_multiple_recipients(%w(em1@email.com em2@email.com)).deliver.header.to_s.
12
- should_not include("To: em1@email.com")
13
- end
14
- end
15
-
16
- describe '#open_tracking' do
17
- it 'set correct open tracking enabled X-SMTAPI header' do
18
- Mailer.email_open_tracking.deliver.header.to_s.
19
- should include('"filters":{"opentrack":{"settings":{"enabled":1}}}')
20
- end
21
-
22
- it 'set correct open tracking disabled X-SMTAPI header' do
23
- Mailer.email_open_tracking(false).deliver.header.to_s.
24
- should include('"filters":{"opentrack":{"settings":{"enabled":0}}}')
25
- end
26
-
27
- it 'set correct open tracking nil X-SMTAPI header' do
28
- Mailer.email_open_tracking(nil).deliver.header.to_s.
29
- should_not include('"filters":{"opentrack')
30
- end
31
- end
32
- end
1
+ require 'spec_helper'
2
+
3
+ describe Mailer do
4
+ describe 'email with multiple recipients' do
5
+ it 'set correct recipients in X-SMTAPI header' do
6
+ Mailer.email_with_multiple_recipients(%w(em1@email.com em2@email.com)).deliver.header.to_s.
7
+ should include('X-SMTPAPI: {"to":[ "em1@email.com", "em2@email.com" ]}')
8
+ end
9
+
10
+ it 'removes original TO header part' do
11
+ Mailer.email_with_multiple_recipients(%w(em1@email.com em2@email.com)).deliver.header.to_s.
12
+ should_not include("To: em1@email.com")
13
+ end
14
+
15
+ it 'maintains recommended header line length' do
16
+ emails = 15.times.map{ |i| "email#{i}@example.com" }
17
+ header = Mailer.email_with_multiple_recipients(emails).deliver.header.to_s
18
+ header.lines.each do |line|
19
+ unless line.starts_with?('Message-ID:') # May be longer depending on your test machine
20
+ line.should have_at_most(72).characters
21
+ end
22
+ end
23
+ end
24
+ end
25
+
26
+ describe '#open_tracking' do
27
+ it 'set correct open tracking enabled X-SMTAPI header' do
28
+ Mailer.email_open_tracking.deliver.header.to_s.
29
+ should include('"filters":{"opentrack":{"settings":{"enabled":1}}}')
30
+ end
31
+
32
+ it 'set correct open tracking disabled X-SMTAPI header' do
33
+ Mailer.email_open_tracking(false).deliver.header.to_s.
34
+ should include('"filters":{"opentrack":{"settings":{"enabled":0}}}')
35
+ end
36
+
37
+ it 'set correct open tracking nil X-SMTAPI header' do
38
+ Mailer.email_open_tracking(nil).deliver.header.to_s.
39
+ should_not include('"filters":{"opentrack')
40
+ end
41
+ end
42
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sendgrid-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.2
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-01-13 00:00:00.000000000Z
12
+ date: 2012-06-28 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70345080410260 !ruby/object:Gem::Requirement
16
+ requirement: &70215829558960 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 2.5.0
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70345080410260
24
+ version_requirements: *70215829558960
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: actionmailer
27
- requirement: &70345080409740 !ruby/object:Gem::Requirement
27
+ requirement: &70215829558460 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 3.0.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70345080409740
35
+ version_requirements: *70215829558460
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: activesupport
38
- requirement: &70345080409280 !ruby/object:Gem::Requirement
38
+ requirement: &70215829558000 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: 2.1.0
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70345080409280
46
+ version_requirements: *70215829558000
47
47
  description: Gem to extend ActionMailer with SendGrid API support
48
48
  email:
49
49
  - paveltyk@gmail.com