tms_client 0.3.0 → 0.4.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.
- data/README.md +1 -1
- data/lib/tms_client/resource/email_message.rb +21 -10
- data/lib/tms_client/version.rb +1 -1
- data/spec/email_message_spec.rb +36 -16
- metadata +8 -3
data/README.md
CHANGED
|
@@ -51,7 +51,7 @@ message.href # "/messages/sms/87"
|
|
|
51
51
|
message.get # <TMS::SmsMessage href=/messages/sms/87 attributes={...}>
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
-
### Sending an Email
|
|
54
|
+
### Sending an Email Message
|
|
55
55
|
|
|
56
56
|
```ruby
|
|
57
57
|
message = client.email_messages.build(:body=>'<p><a href="http://example.com">Visit here</a>',
|
|
@@ -3,14 +3,16 @@ module TMS #:nodoc:
|
|
|
3
3
|
# objects. Certain metrics are available after the email is sent, including
|
|
4
4
|
# the collection of recipients who clicked or opened the email.
|
|
5
5
|
#
|
|
6
|
-
# @attr from_name
|
|
7
|
-
# @attr from_email [String]
|
|
8
|
-
# @attr
|
|
9
|
-
# @attr
|
|
10
|
-
# @attr
|
|
11
|
-
# @attr
|
|
12
|
-
# @attr
|
|
13
|
-
#
|
|
6
|
+
# @attr from_name [String] The name of the person or entity sending the email.
|
|
7
|
+
# @attr from_email [String] Optional - the email address of the person or entity sending the email. Must be configured in TMS beforehand. Defaults to the account default from address.
|
|
8
|
+
# @attr reply_to [String] Optional - the email address used for the Reply-To header of this email. Defaults to the account default reply_to_email address (which itself defaults to the default from address if not specified).
|
|
9
|
+
# @attr errors_to [String] Optional - the email address used for the Errors-To header of this email. Defaults to the account default bounce_email address (which itself defaults to the default from address if not specified).
|
|
10
|
+
# @attr subject [String] The subject of the email.
|
|
11
|
+
# @attr body [String] The body of the email.
|
|
12
|
+
# @attr open_tracking_enabled [Boolean] Optional - Whether to track opens on this message. Defaults to true.
|
|
13
|
+
# @attr click_tracking_enabled [Boolean] Optional - Whether to track clicks on links in this message. Defaults to true.
|
|
14
|
+
# @attr macros [Hash] Optional - A dictionary of key/value pairs to use in the subject and body as default macros.
|
|
15
|
+
# The message-level macros are used when a recipient has no value for a given macro key.
|
|
14
16
|
#
|
|
15
17
|
# @example Sending a message
|
|
16
18
|
# email_message = client.email_messages.build(:subject => "Great news!",
|
|
@@ -41,8 +43,17 @@ module TMS #:nodoc:
|
|
|
41
43
|
class EmailMessage
|
|
42
44
|
include InstanceResource
|
|
43
45
|
|
|
44
|
-
# @!parse attr_accessor :body, :from_name, :from_email, :subject, :open_tracking_enabled, :click_tracking_enabled, :macros
|
|
45
|
-
writeable_attributes :body,
|
|
46
|
+
# @!parse attr_accessor :body, :from_name, :from_email, :reply_to, :errors_to, :subject, :open_tracking_enabled, :click_tracking_enabled, :macros
|
|
47
|
+
writeable_attributes :body,
|
|
48
|
+
:click_tracking_enabled,
|
|
49
|
+
:errors_to,
|
|
50
|
+
:from_email,
|
|
51
|
+
:from_name,
|
|
52
|
+
:macros,
|
|
53
|
+
:open_tracking_enabled,
|
|
54
|
+
:reply_to,
|
|
55
|
+
:subject
|
|
56
|
+
|
|
46
57
|
|
|
47
58
|
# @!parse attr_reader :created_at, :status
|
|
48
59
|
readonly_attributes :created_at, :status
|
data/lib/tms_client/version.rb
CHANGED
data/spec/email_message_spec.rb
CHANGED
|
@@ -6,29 +6,44 @@ describe TMS::EmailMessage do
|
|
|
6
6
|
double('client')
|
|
7
7
|
end
|
|
8
8
|
before do
|
|
9
|
-
@message = TMS::EmailMessage.new(client, nil, {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
@message = TMS::EmailMessage.new(client, nil, {
|
|
10
|
+
:body => '12345678',
|
|
11
|
+
:subject => 'blah',
|
|
12
|
+
:created_at => 'BAAAAAD',
|
|
13
|
+
:from_email => 'eric@evotest.govdelivery.com',
|
|
14
|
+
:errors_to => 'errors@evotest.govdelivery.com',
|
|
15
|
+
:reply_to => 'replyto@evotest.govdelivery.com'})
|
|
13
16
|
end
|
|
14
17
|
it 'should not render readonly attrs in json hash' do
|
|
15
18
|
@message.to_json[:body].should == '12345678'
|
|
16
19
|
@message.to_json[:created_at].should == nil
|
|
17
20
|
end
|
|
18
21
|
it 'should initialize with attrs and collections' do
|
|
19
|
-
@message.body.should
|
|
20
|
-
@message.subject.should
|
|
21
|
-
@message.from_email.should
|
|
22
|
+
@message.body.should == '12345678'
|
|
23
|
+
@message.subject.should == 'blah'
|
|
24
|
+
@message.from_email.should == 'eric@evotest.govdelivery.com'
|
|
25
|
+
@message.reply_to.should == 'replyto@evotest.govdelivery.com'
|
|
26
|
+
@message.errors_to.should == 'errors@evotest.govdelivery.com'
|
|
22
27
|
@message.recipients.class.should == TMS::EmailRecipients
|
|
23
28
|
end
|
|
24
29
|
it 'should post successfully' do
|
|
25
|
-
response = {
|
|
26
|
-
|
|
30
|
+
response = {
|
|
31
|
+
:body => 'processed',
|
|
32
|
+
:subject => 'blah',
|
|
33
|
+
:from_email => 'eric@evotest.govdelivery.com',
|
|
34
|
+
:errors_to => 'errors@evotest.govdelivery.com',
|
|
35
|
+
:reply_to => 'replyto@evotest.govdelivery.com',
|
|
36
|
+
:recipients => [{:email => 'billy@evotest.govdelivery.com'}],
|
|
37
|
+
:created_at => 'time'
|
|
38
|
+
}
|
|
27
39
|
@message.client.should_receive('post').with(@message).and_return(double('response', :status => 201, :body => response))
|
|
28
40
|
@message.post
|
|
29
|
-
@message.body.should
|
|
30
|
-
@message.created_at.should
|
|
31
|
-
@message.
|
|
41
|
+
@message.body.should == 'processed'
|
|
42
|
+
@message.created_at.should == 'time'
|
|
43
|
+
@message.from_email.should == 'eric@evotest.govdelivery.com'
|
|
44
|
+
@message.reply_to.should == 'replyto@evotest.govdelivery.com'
|
|
45
|
+
@message.errors_to.should == 'errors@evotest.govdelivery.com'
|
|
46
|
+
@message.recipients.class.should == TMS::EmailRecipients
|
|
32
47
|
@message.recipients.collection.first.class.should == TMS::EmailRecipient
|
|
33
48
|
end
|
|
34
49
|
it 'should handle errors' do
|
|
@@ -50,14 +65,19 @@ describe TMS::EmailMessage do
|
|
|
50
65
|
end
|
|
51
66
|
it 'should GET cleanly' do
|
|
52
67
|
response = {:body => 'processed',
|
|
53
|
-
:subject
|
|
68
|
+
:subject => 'hey',
|
|
54
69
|
:from_email => 'eric@evotest.govdelivery.com',
|
|
55
|
-
:
|
|
70
|
+
:errors_to => 'errors@evotest.govdelivery.com',
|
|
71
|
+
:reply_to => 'replyto@evotest.govdelivery.com',
|
|
72
|
+
:recipients => [{:email => 'billy@evotest.govdelivery.com'}],
|
|
73
|
+
:created_at => 'time'}
|
|
56
74
|
@message.client.should_receive('get').with(@message.href).and_return(double('response', :status => 200, :body => response))
|
|
57
75
|
@message.get
|
|
58
|
-
@message.body.should
|
|
59
|
-
@message.subject.should
|
|
76
|
+
@message.body.should == 'processed'
|
|
77
|
+
@message.subject.should == 'hey'
|
|
60
78
|
@message.from_email.should == 'eric@evotest.govdelivery.com'
|
|
79
|
+
@message.reply_to.should == 'replyto@evotest.govdelivery.com'
|
|
80
|
+
@message.errors_to.should == 'errors@evotest.govdelivery.com'
|
|
61
81
|
@message.created_at.should == 'time'
|
|
62
82
|
end
|
|
63
83
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: tms_client
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date: 2013-
|
|
12
|
+
date: 2013-12-05 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: activesupport
|
|
@@ -122,12 +122,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
122
122
|
- - ! '>='
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
124
|
version: '0'
|
|
125
|
+
segments:
|
|
126
|
+
- 0
|
|
127
|
+
hash: 825628313063111602
|
|
125
128
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
126
129
|
none: false
|
|
127
130
|
requirements:
|
|
128
131
|
- - ! '>='
|
|
129
132
|
- !ruby/object:Gem::Version
|
|
130
133
|
version: '0'
|
|
134
|
+
segments:
|
|
135
|
+
- 0
|
|
136
|
+
hash: 825628313063111602
|
|
131
137
|
requirements: []
|
|
132
138
|
rubyforge_project:
|
|
133
139
|
rubygems_version: 1.8.25
|
|
@@ -147,4 +153,3 @@ test_files:
|
|
|
147
153
|
- spec/sms_messages_spec.rb
|
|
148
154
|
- spec/spec_helper.rb
|
|
149
155
|
- spec/tms_client_spec.rb
|
|
150
|
-
has_rdoc:
|