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.
- data/lib/send_grid/api_header.rb +32 -33
- data/lib/send_grid/version.rb +4 -4
- data/spec/api_header_spec.rb +41 -41
- data/spec/mailer_spec.rb +42 -32
- metadata +8 -8
data/lib/send_grid/api_header.rb
CHANGED
@@ -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
|
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
|
data/lib/send_grid/version.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
module SendGrid
|
2
|
-
VERSION = "2.0.
|
3
|
-
end
|
4
|
-
|
1
|
+
module SendGrid
|
2
|
+
VERSION = "2.0.2"
|
3
|
+
end
|
4
|
+
|
data/spec/api_header_spec.rb
CHANGED
@@ -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
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
it 'set correct open tracking
|
28
|
-
Mailer.email_open_tracking
|
29
|
-
|
30
|
-
end
|
31
|
-
|
32
|
-
|
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.
|
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-
|
12
|
+
date: 2012-06-28 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
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: *
|
24
|
+
version_requirements: *70215829558960
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: actionmailer
|
27
|
-
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: *
|
35
|
+
version_requirements: *70215829558460
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: activesupport
|
38
|
-
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: *
|
46
|
+
version_requirements: *70215829558000
|
47
47
|
description: Gem to extend ActionMailer with SendGrid API support
|
48
48
|
email:
|
49
49
|
- paveltyk@gmail.com
|