send_with_us 1.6.0 → 1.7.0
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.
- checksums.yaml +7 -0
- data/README.md +17 -7
- data/lib/send_with_us.rb +1 -0
- data/lib/send_with_us/api.rb +10 -7
- data/lib/send_with_us/attachment.rb +16 -0
- data/lib/send_with_us/version.rb +1 -1
- data/test/lib/send_with_us/attachment_test.rb +71 -0
- metadata +16 -21
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d6f051528f2e3214a82b3447fc0d3965dd614848
|
4
|
+
data.tar.gz: f743aa1c6a72b8bddb178722c0d55978700283dd
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 493cfbea63a120844f4f3bfa6eb72653a618b20bae54e8e71a7f13a8393249db77dc62812fa733240024fd08a8d4510c73b617da6b360e8caa3182d64772d3a4
|
7
|
+
data.tar.gz: 068ec297df720fe877cd2b71090f62ac6e5199e7c61baee8f4e5d8f72c458243520428930096eef364f7affc32ebf174d09ba6b406d081426ad1c307636638ab
|
data/README.md
CHANGED
@@ -30,11 +30,12 @@ bundle install
|
|
30
30
|
- **from** - *hash* - From name/address/reply\_to
|
31
31
|
- **cc** - *array* - array of CC addresses
|
32
32
|
- **bcc** - *array* - array of BCC addresses
|
33
|
-
- **files** - *array* - array of files to attach
|
33
|
+
- **files** - *array* - array of files to attach, as strings or hashes (see below)
|
34
34
|
- **esp\_account** - *string* - ESP account used to send email
|
35
35
|
- **version\_name** - *string* - version of template to send
|
36
36
|
- **headers** - *hash* - custom email headers **NOTE** only supported by some ESPs
|
37
37
|
|
38
|
+
|
38
39
|
For any Ruby project:
|
39
40
|
```ruby
|
40
41
|
require 'rubygems'
|
@@ -54,9 +55,12 @@ begin
|
|
54
55
|
'template_id',
|
55
56
|
{ name: 'Matt', address: 'recipient@example.com' },
|
56
57
|
{ company_name: 'TestCo' },
|
57
|
-
{
|
58
|
-
|
59
|
-
|
58
|
+
{
|
59
|
+
name: 'Company',
|
60
|
+
address: 'company@example.com',
|
61
|
+
reply_to: 'info@example.com'
|
62
|
+
},
|
63
|
+
['path/to/attachment.txt'],
|
60
64
|
'esp_MYESPACCOUNT',
|
61
65
|
'v2') # version name
|
62
66
|
puts result
|
@@ -91,11 +95,17 @@ begin
|
|
91
95
|
reply_to: 'info@example.com' },
|
92
96
|
[],
|
93
97
|
[],
|
94
|
-
[
|
98
|
+
[
|
99
|
+
'path/to/file.txt',
|
100
|
+
{ filename: 'customfilename.txt', attachment: 'path/to/file.txt' },
|
101
|
+
{ filename: 'anotherfile.txt', attachment: File.open('path/to/file.txt') },
|
102
|
+
{ filename: 'unpersistedattachment.txt', attachment: StringIO.new("raw data") }
|
103
|
+
]
|
104
|
+
)
|
95
105
|
puts result
|
96
106
|
|
97
107
|
# Set ESP account
|
98
|
-
# See: https://help.sendwithus.com/support/
|
108
|
+
# See: https://help.sendwithus.com/support/solurtions/articles/1000088976-set-up-and-use-multiple
|
99
109
|
result = obj.send_with(
|
100
110
|
'template_id',
|
101
111
|
{ name: 'Matt', address: 'recipient@example.com' },
|
@@ -117,7 +127,7 @@ end
|
|
117
127
|
|
118
128
|
- **email\_id** - *string* - Template ID being rendered
|
119
129
|
- **version\_id** - *string* - Version ID to render (optional)
|
120
|
-
- **data** - *hash* - Email data to render the template with
|
130
|
+
- **data** - *hash* - Email data to render the template with (optional)
|
121
131
|
|
122
132
|
```ruby
|
123
133
|
require 'rubygems'
|
data/lib/send_with_us.rb
CHANGED
data/lib/send_with_us/api.rb
CHANGED
@@ -51,14 +51,17 @@ module SendWithUs
|
|
51
51
|
payload[:headers] = headers
|
52
52
|
end
|
53
53
|
|
54
|
-
files.
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
54
|
+
if files.any?
|
55
|
+
payload[:files] = []
|
56
|
+
|
57
|
+
files.each do |file_data|
|
58
|
+
if file_data.is_a?(String)
|
59
|
+
attachment = SendWithUs::Attachment.new(file_data)
|
60
|
+
else
|
61
|
+
attachment = SendWithUs::Attachment.new(file_data[:attachment], file_data[:filename])
|
62
|
+
end
|
63
|
+
payload[:files] << { id: attachment.filename, data: attachment.encoded_data }
|
60
64
|
end
|
61
|
-
payload[:files] << {id: id, data: data}
|
62
65
|
end
|
63
66
|
|
64
67
|
payload = payload.to_json
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module SendWithUs
|
2
|
+
class Attachment
|
3
|
+
def initialize attachment, filename = nil
|
4
|
+
@attachment, @filename = attachment, filename
|
5
|
+
end
|
6
|
+
|
7
|
+
def filename
|
8
|
+
@filename ||= @attachment.is_a?(String) ? File.basename(@attachment) : nil
|
9
|
+
end
|
10
|
+
|
11
|
+
def encoded_data
|
12
|
+
file_data = @attachment.respond_to?(:read) ? @attachment : open(@attachment)
|
13
|
+
Base64.encode64(file_data.read)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/send_with_us/version.rb
CHANGED
@@ -0,0 +1,71 @@
|
|
1
|
+
require_relative '../../test_helper'
|
2
|
+
|
3
|
+
class TestAttachment < MiniTest::Unit::TestCase
|
4
|
+
describe "#filename" do
|
5
|
+
describe "when a filename is explicitly declared" do
|
6
|
+
before do
|
7
|
+
@attachment = SendWithUs::Attachment.new(
|
8
|
+
StringIO.new("some data"),
|
9
|
+
"rawr.txt"
|
10
|
+
)
|
11
|
+
end
|
12
|
+
|
13
|
+
it "returns the explicit filename" do
|
14
|
+
assert_equal "rawr.txt", @attachment.filename
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe "when a filename is implied from a path" do
|
19
|
+
before do
|
20
|
+
@attachment = SendWithUs::Attachment.new(
|
21
|
+
"this/is/a/path.txt"
|
22
|
+
)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "returns the basename of the path" do
|
26
|
+
assert_equal "path.txt", @attachment.filename
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "when a filename is absent" do
|
31
|
+
before do
|
32
|
+
@attachment = SendWithUs::Attachment.new(
|
33
|
+
StringIO.new("")
|
34
|
+
)
|
35
|
+
end
|
36
|
+
|
37
|
+
it "returns nil" do
|
38
|
+
assert_nil @attachment.filename
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe "#encoded_data" do
|
44
|
+
describe "when the attachment is an IO object" do
|
45
|
+
before do
|
46
|
+
@attachment = SendWithUs::Attachment.new(
|
47
|
+
StringIO.new("test text")
|
48
|
+
)
|
49
|
+
end
|
50
|
+
|
51
|
+
it "returns the base 64'd content of the object" do
|
52
|
+
assert_equal Base64.encode64("test text"), @attachment.encoded_data
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe "when the attachment is not an IO object" do
|
57
|
+
before do
|
58
|
+
@attachment = SendWithUs::Attachment.new(
|
59
|
+
"path/to/file.txt"
|
60
|
+
)
|
61
|
+
@attachment.expects(:open).
|
62
|
+
with("path/to/file.txt").
|
63
|
+
returns(StringIO.new("test text"))
|
64
|
+
end
|
65
|
+
|
66
|
+
it "returns the base 64'd content of the file/url in question" do
|
67
|
+
assert_equal Base64.encode64("test text"), @attachment.encoded_data
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: send_with_us
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.7.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Matt Harris
|
@@ -11,54 +10,48 @@ authors:
|
|
11
10
|
autorequire:
|
12
11
|
bindir: bin
|
13
12
|
cert_chain: []
|
14
|
-
date: 2014-12-
|
13
|
+
date: 2014-12-19 00:00:00.000000000 Z
|
15
14
|
dependencies:
|
16
15
|
- !ruby/object:Gem::Dependency
|
17
16
|
name: rake
|
18
17
|
requirement: !ruby/object:Gem::Requirement
|
19
|
-
none: false
|
20
18
|
requirements:
|
21
|
-
- -
|
19
|
+
- - '>='
|
22
20
|
- !ruby/object:Gem::Version
|
23
21
|
version: '0'
|
24
22
|
type: :development
|
25
23
|
prerelease: false
|
26
24
|
version_requirements: !ruby/object:Gem::Requirement
|
27
|
-
none: false
|
28
25
|
requirements:
|
29
|
-
- -
|
26
|
+
- - '>='
|
30
27
|
- !ruby/object:Gem::Version
|
31
28
|
version: '0'
|
32
29
|
- !ruby/object:Gem::Dependency
|
33
30
|
name: shoulda
|
34
31
|
requirement: !ruby/object:Gem::Requirement
|
35
|
-
none: false
|
36
32
|
requirements:
|
37
|
-
- -
|
33
|
+
- - '>='
|
38
34
|
- !ruby/object:Gem::Version
|
39
35
|
version: '0'
|
40
36
|
type: :development
|
41
37
|
prerelease: false
|
42
38
|
version_requirements: !ruby/object:Gem::Requirement
|
43
|
-
none: false
|
44
39
|
requirements:
|
45
|
-
- -
|
40
|
+
- - '>='
|
46
41
|
- !ruby/object:Gem::Version
|
47
42
|
version: '0'
|
48
43
|
- !ruby/object:Gem::Dependency
|
49
44
|
name: mocha
|
50
45
|
requirement: !ruby/object:Gem::Requirement
|
51
|
-
none: false
|
52
46
|
requirements:
|
53
|
-
- -
|
47
|
+
- - '>='
|
54
48
|
- !ruby/object:Gem::Version
|
55
49
|
version: '0'
|
56
50
|
type: :development
|
57
51
|
prerelease: false
|
58
52
|
version_requirements: !ruby/object:Gem::Requirement
|
59
|
-
none: false
|
60
53
|
requirements:
|
61
|
-
- -
|
54
|
+
- - '>='
|
62
55
|
- !ruby/object:Gem::Version
|
63
56
|
version: '0'
|
64
57
|
description: SendWithUs.com Ruby Client
|
@@ -79,42 +72,44 @@ files:
|
|
79
72
|
- lib/send_with_us.rb
|
80
73
|
- lib/send_with_us/api.rb
|
81
74
|
- lib/send_with_us/api_request.rb
|
75
|
+
- lib/send_with_us/attachment.rb
|
82
76
|
- lib/send_with_us/config.rb
|
83
77
|
- lib/send_with_us/version.rb
|
84
78
|
- send_with_us.gemspec
|
85
79
|
- test/lib/send_with_us/api_request_test.rb
|
86
80
|
- test/lib/send_with_us/api_test.rb
|
81
|
+
- test/lib/send_with_us/attachment_test.rb
|
87
82
|
- test/lib/send_with_us/config_test.rb
|
88
83
|
- test/lib/send_with_us/version_test.rb
|
89
84
|
- test/test_helper.rb
|
90
85
|
homepage: https://github.com/sendwithus/sendwithus_ruby
|
91
86
|
licenses:
|
92
87
|
- Apache-2.0
|
88
|
+
metadata: {}
|
93
89
|
post_install_message:
|
94
90
|
rdoc_options: []
|
95
91
|
require_paths:
|
96
92
|
- lib
|
97
93
|
required_ruby_version: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
94
|
requirements:
|
100
|
-
- -
|
95
|
+
- - '>='
|
101
96
|
- !ruby/object:Gem::Version
|
102
97
|
version: '0'
|
103
98
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
104
|
-
none: false
|
105
99
|
requirements:
|
106
|
-
- -
|
100
|
+
- - '>='
|
107
101
|
- !ruby/object:Gem::Version
|
108
102
|
version: '0'
|
109
103
|
requirements: []
|
110
104
|
rubyforge_project:
|
111
|
-
rubygems_version:
|
105
|
+
rubygems_version: 2.0.14
|
112
106
|
signing_key:
|
113
|
-
specification_version:
|
107
|
+
specification_version: 4
|
114
108
|
summary: SendWithUs.com Ruby Client
|
115
109
|
test_files:
|
116
110
|
- test/lib/send_with_us/api_request_test.rb
|
117
111
|
- test/lib/send_with_us/api_test.rb
|
112
|
+
- test/lib/send_with_us/attachment_test.rb
|
118
113
|
- test/lib/send_with_us/config_test.rb
|
119
114
|
- test/lib/send_with_us/version_test.rb
|
120
115
|
- test/test_helper.rb
|