sendgrid-rails 2.0.1 → 2.0.2

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.
@@ -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