govdelivery-tms 0.10.1 → 2.8.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 80ce30c67675cf5ca2fd17540de4ec441ca4f5eb
4
- data.tar.gz: f687a66bd95d9ea853118833ecd7b22b1d8664a5
2
+ SHA256:
3
+ metadata.gz: d64e10030da0d761968107c6c275bc7605428dcdc9080c0dbec58c1eafb4358d
4
+ data.tar.gz: 7e9566ed9d64e80e3b50ef48cd1b8a00a434882afcd888472a9e1f5e589eed43
5
5
  SHA512:
6
- metadata.gz: a7d601b3087a473619bb61b51ebeedec2e6b8f1a71eeb63ed3e81fe01bf04c6b3694c7adbdb55ab12bfc76f25c03cac1631f97fb78f24cd6e2a1659cfb4a51ff
7
- data.tar.gz: e69055850da82be3a98a87510bdc6619c8be93f08123a77c3d9469d563bd5f079d2ad69219e2c5ca3e17544d457fee778fff0f20dce81d47e0bc37d4fdbe2987
6
+ metadata.gz: 43b1065b7a69d3984fb106b088d55d77c67d4a97994616d2010f0086d957f79b69e1c0030e33fd4e4c78a2b59ea4088a7e51dbd3ff579f4d25f753db6156d93b
7
+ data.tar.gz: 41be63bb2424563b899838ec5b2b76eee1bede37ee63a5194aef1c16cb8b8e2a891bb1bd6c35d925877350d0515cefb58a919529f00351b4f8202de82c2e1b67
data/Gemfile CHANGED
@@ -3,7 +3,7 @@ gemspec
3
3
 
4
4
  group :development, :test do
5
5
  gem 'appraisal'
6
- gem 'rspec', '~> 3.2.0'
6
+ gem 'rspec'
7
7
  gem 'rspec-its'
8
8
  gem 'rake'
9
9
  gem 'redcarpet', platform: :ruby
data/README.md CHANGED
@@ -39,6 +39,27 @@ client.sms_messages.get # get the first page of sms messages
39
39
  client.sms_messages.next.get # get the next page of sms messages
40
40
  ```
41
41
 
42
+ #### Optional parameters
43
+ When loading messages, the following parameters can be passed with requests to change the sort order and number of results returned:
44
+
45
+ **page_size**: Must be an integer between 1 and 100
46
+
47
+ ```ruby
48
+ client.sms_messages.get({page_size: 2}) # get the first two sms messages
49
+ ```
50
+
51
+ **sort_by**: Field by which to sort results. Default: created_at.
52
+
53
+ ```ruby
54
+ client.sms_messages.get({sort_by: 'created_at'}) # get the first page of sms messages, sorted by created_at
55
+ ```
56
+
57
+ **sort_order**: Order by which to sort results. Must be ASC or DESC. Default: DESC.
58
+
59
+ ```ruby
60
+ client.sms_messages.get({sort_order: 'ASC'}) # get the first page of sms messages, sorted by created_at DESC
61
+ client.sms_messages.get({sort_by: 'body', sort_order: 'ASC'}) # get the first page of sms messages, sorted by body ASC
62
+ ```
42
63
 
43
64
  ### Sending an SMS Message
44
65
 
@@ -219,6 +240,7 @@ completed_at | (sent or failed recipients only)
219
240
 
220
241
  Metrics
221
242
  -------
243
+
222
244
  ### Viewing recipients that clicked on a link in an email
223
245
 
224
246
  ```ruby
@@ -243,6 +265,29 @@ email_recipient.clicks.get.collection #=> [<#EmailRecipientClick>,...]
243
265
  email_recipient.opens.get.collection #=> [<#EmailRecipientOpen>,...]
244
266
  ```
245
267
 
268
+ Reports
269
+ -------
270
+
271
+ ### Message recipient counts
272
+ Recipient counts are aggregated across all messages and grouped by message status.
273
+
274
+ `start` and `end` are required datetime parameters. They must be truncated to the hour and be in ISO 8601 format (YYYY-MM-DDTHH:MM:SSZ).
275
+
276
+ End dates are exclusive and all results are based on utc time.
277
+
278
+ #### Email
279
+
280
+ ```ruby
281
+ stats = client.reports_messages_email_statistics.get({start: '2017-06-01T10:00:00Z', end: '2017:06:30T18:00:00Z'}) # get email recipient counts for messages sent between 6/1/17 and 6/30/17
282
+ stats.recipients
283
+ ```
284
+
285
+ #### SMS
286
+ ```ruby
287
+ stats = client.reports_messages_sms_statistics.get({start: '2017-06-01T10:00:00Z', end: '2017:06:30T18:00:00Z'}) # get sms recipient counts for messages sent between 6/1/17 and 6/30/17
288
+ stats.recipients
289
+ ```
290
+
246
291
  Configuring 2-way SMS
247
292
  ---------------------
248
293
 
@@ -359,22 +404,37 @@ Generating Documentation
359
404
  ------------------------
360
405
  This project uses [yard](https://github.com/lsegal/yard) to generate documentation. To generate API documentation yourself, use the following series of commands from the project root:
361
406
 
362
- ```ruby
407
+ ```
363
408
  # install development gems
364
409
  bundle install
365
410
  # generate documentation
366
- rake yard
411
+ bundle exec rake yard
367
412
  ```
368
413
  The generated documentation will be placed in the `doc` folder.
369
414
 
370
415
 
371
416
  Running Tests
372
417
  -------------
373
- ```ruby
374
- appraisal install
375
- # optionally specify an activesupport version to test against (3/4), e.g.
376
- # appraisal 4 rake ## for ruby 2.1.2
377
- appraisal rake
418
+ This project relies upon the appraisal gem to support running tests with different ActiveSupport versions.
419
+
420
+ ### default ActiveSupport
421
+ ```
422
+ bundle exec appraisal install
423
+ bundle exec appraisal rake
424
+ ```
425
+
426
+ ### ActiveSupport 3
427
+ ```
428
+ bundle update
429
+ bundle install --gemfile gemfiles/3.gemfile
430
+ bundle exec appraisal 3 rake
431
+ ```
432
+
433
+ ### ActiveSupport 4
434
+ ```
435
+ bundle update
436
+ bundle install --gemfile gemfiles/4.gemfile
437
+ bundle exec appraisal 4 rake
378
438
  ```
379
439
 
380
440
 
@@ -17,7 +17,7 @@ Gem::Specification.new do |s|
17
17
  s.add_runtime_dependency 'activesupport'
18
18
  s.add_runtime_dependency 'faraday'
19
19
  s.add_runtime_dependency 'faraday_middleware'
20
- s.add_runtime_dependency 'mime-types', ['< 3.0']
20
+ s.add_runtime_dependency 'mime-types'
21
21
 
22
22
  s.files = %w(
23
23
  Gemfile
@@ -36,3 +36,5 @@ require 'govdelivery/tms/resource/command_action'
36
36
  require 'govdelivery/tms/resource/command'
37
37
  require 'govdelivery/tms/resource/keyword'
38
38
  require 'govdelivery/tms/resource/webhook'
39
+ require 'govdelivery/tms/resource/reports_messages_email_statistics'
40
+ require 'govdelivery/tms/resource/reports_messages_sms_statistics'
@@ -39,8 +39,8 @@ class GovDelivery::TMS::Client
39
39
  parse_links(services['_links'])
40
40
  end
41
41
 
42
- def get(href)
43
- response = raw_connection.get(href)
42
+ def get(href, params = {})
43
+ response = raw_connection.get(href, params)
44
44
  case response.status
45
45
  when 500..599
46
46
  fail GovDelivery::TMS::Request::Error.new(response.status)
@@ -16,8 +16,8 @@ module GovDelivery::TMS::CollectionResource
16
16
  end
17
17
  end
18
18
 
19
- def get
20
- response = client.get(href)
19
+ def get(params = {})
20
+ response = client.get(href, params)
21
21
  initialize_collection_from_items(response.body)
22
22
  # setup page links from header
23
23
  links = LinkHeader.parse(response.headers['link']).to_a.collect do |a|
@@ -1,8 +1,8 @@
1
1
  class GovDelivery::TMS::Connection
2
2
  attr_accessor :auth_token, :api_root, :connection, :logger
3
3
 
4
- def get(href)
5
- resp = connection.get("#{href}.json")
4
+ def get(href, params = {})
5
+ resp = connection.get("#{href}.json", params)
6
6
  if resp.status != 200
7
7
  fail RecordNotFound.new("Could not find resource at #{href} (status #{resp.status})")
8
8
  else
@@ -130,9 +130,9 @@ module GovDelivery::TMS::InstanceResource
130
130
 
131
131
  attr_reader :attributes
132
132
 
133
- def get
133
+ def get(params={})
134
134
  fail GovDelivery::TMS::Errors::InvalidGet if self.new_record?
135
- process_response(client.get(href), :get) && self
135
+ process_response(client.get(href, params), :get) && self
136
136
  end
137
137
  alias_method :get!, :get
138
138
 
@@ -0,0 +1,8 @@
1
+ module GovDelivery::TMS #:nodoc:
2
+ class ReportsMessagesEmailStatistics
3
+ include InstanceResource
4
+
5
+ # @!parse attr_reader :recipients
6
+ readonly_attributes :recipients
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module GovDelivery::TMS #:nodoc:
2
+ class ReportsMessagesSmsStatistics
3
+ include InstanceResource
4
+
5
+ # @!parse attr_reader :recipients
6
+ readonly_attributes :recipients
7
+ end
8
+ end
@@ -1,5 +1,5 @@
1
1
  module GovDelivery
2
2
  module TMS #:nodoc:
3
- VERSION = '0.10.1'.freeze
3
+ VERSION = File.read(File.join(__dir__, "../../../.version")).freeze
4
4
  end
5
5
  end
@@ -52,6 +52,11 @@ describe GovDelivery::TMS::Client do
52
52
  allow(@raw_connection).to receive(:get).and_return(double('response', status: 202, body: { 'message' => 'hi' }))
53
53
  expect { @client.get('/blargh') }.to raise_error(GovDelivery::TMS::Request::InProgress)
54
54
  end
55
+ it 'should handle all other responses' do
56
+ response = double('response', status: 200, body: { 'message' => 'hi' })
57
+ allow(@raw_connection).to receive(:get).with('/blargh', {params: 'foobar'}).and_return(response)
58
+ expect(@client.get('/blargh', {params: 'foobar'})).to eq(response)
59
+ end
55
60
 
56
61
  context 'creating a new client without output' do
57
62
  subject { GovDelivery::TMS::Client.new('auth_token', api_root: 'null_url', logger: false) }
@@ -1,5 +1,11 @@
1
1
  require 'spec_helper'
2
2
 
3
+ def inflector
4
+ m = ActiveSupport::Inflector.method('inflections')
5
+ return ActiveSupport::Inflector.inflections(:en) if m.arity == 1
6
+ ActiveSupport::Inflector.inflections
7
+ end
8
+
3
9
  describe GovDelivery::TMS::CoreExt do
4
10
 
5
11
  subject do
@@ -7,10 +13,13 @@ describe GovDelivery::TMS::CoreExt do
7
13
  end
8
14
 
9
15
  describe '#camelize' do
10
- it 'should return camilized string not using inflector acronyms' do
11
- ActiveSupport::Inflector.inflections(:en) do |inflect|
16
+ before do
17
+ inflector do |inflect|
12
18
  inflect.acronym 'SMS'
13
19
  end
20
+ end
21
+
22
+ it 'should return camilized string not using inflector acronyms' do
14
23
  expect(subject.camelize('sms_message')).to eq 'SmsMessage'
15
24
  end
16
25
  end
@@ -91,7 +91,7 @@ describe GovDelivery::TMS::EmailMessage do
91
91
  'message_type' => '/message_type/abc',
92
92
  'email_template' => '/templates/email/new-template' }
93
93
  }
94
- expect(@message.client).to receive('get').with(@message.href).and_return(double('response', status: 200, body: response))
94
+ expect(@message.client).to receive('get').with(@message.href, {}).and_return(double('response', status: 200, body: response))
95
95
  @message.get
96
96
  expect(@message.body).to eq('processed')
97
97
  expect(@message.subject).to eq('hey')
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+
3
+ describe GovDelivery::TMS::EmailMessages do
4
+ let(:href) {'/messages/email'}
5
+ context 'loading messages' do
6
+ let(:client) {double('client')}
7
+ let(:messages) {[
8
+ { subject: 'hello', body: 'greetings from places', created_at: 'a while ago' },
9
+ { subject: 'hi!', body: 'feel me flow', created_at: 'longer ago' },
10
+ { subject: 'yo', body: 'I am not a robot', created_at: 'even longer ago' }
11
+ ]}
12
+
13
+ before do
14
+ @messages = GovDelivery::TMS::EmailMessages.new(client, href)
15
+ end
16
+
17
+ it 'should GET ok' do
18
+ expect(@messages.client).to receive(:get).and_return(double('response', body: messages, status: 200, headers: { 'link' => "</messages/email/page/2>; rel=\"next\",</messages/email/page/11>; rel=\"last\"" }))
19
+
20
+ @messages.get
21
+ expect(@messages.collection.length).to eq(3)
22
+ expect(@messages.next.href).to eq('/messages/email/page/2')
23
+ expect(@messages.last.href).to eq('/messages/email/page/11')
24
+ end
25
+
26
+ it 'should GET ok with parameters' do
27
+ params = {page_size: 2, sort_by: 'created_by', sort_order: 'foobar'}
28
+ expect(@messages.client).to receive(:get).with(href, params).and_return(double('response', body: messages[1..-1], status: 200, headers: { 'link' => "</messages/email/page/2>; rel=\"next\",</messages/email/page/11>; rel=\"last\"" }))
29
+
30
+ @messages.get(params)
31
+ expect(@messages.collection.length).to eq(2)
32
+ end
33
+ end
34
+ end
@@ -25,7 +25,7 @@ describe GovDelivery::TMS::EmailTemplate do
25
25
  }
26
26
  ]
27
27
 
28
- expect(@templates.client).to receive('get').with('/templates/email').and_return(double('response', status: 200, body: response, headers: {}))
28
+ expect(@templates.client).to receive('get').with('/templates/email', {}).and_return(double('response', status: 200, body: response, headers: {}))
29
29
  @templates.get
30
30
  expect(@templates.collection.length).to eq(1)
31
31
  end
@@ -21,7 +21,7 @@ describe GovDelivery::TMS::FromAddress do
21
21
  '_links' => { 'self' => '/from_addresses/1' }
22
22
  }]
23
23
 
24
- expect(@fromaddresses.client).to receive('get').with('/from_addresses').and_return(double('/from_addresses', status: 200, body: response, headers: {}))
24
+ expect(@fromaddresses.client).to receive('get').with('/from_addresses',{}).and_return(double('/from_addresses', status: 200, body: response, headers: {}))
25
25
  addresses = @fromaddresses.get
26
26
  expect(addresses.collection.length).to eq(1)
27
27
  expect(addresses.collection.first.class).to eq(GovDelivery::TMS::FromAddress)
@@ -39,7 +39,7 @@ describe GovDelivery::TMS::Keyword do
39
39
  end
40
40
  it 'should GET cleanly' do
41
41
  response = { name: 'FOO', response_text: 'hello' }
42
- expect(@keyword.client).to receive('get').with(@keyword.href).and_return(double('response', status: 200, body: response))
42
+ expect(@keyword.client).to receive('get').with(@keyword.href, {}).and_return(double('response', status: 200, body: response))
43
43
  @keyword.get
44
44
  expect(@keyword.name).to eq('FOO')
45
45
  expect(@keyword.response_text).to eq('hello')
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ describe GovDelivery::TMS::ReportsMessagesEmailStatistics do
4
+ context 'loading email message statistics' do
5
+ let(:client) { double('client') }
6
+ let(:href) { '/reports/messages/email/statistics' }
7
+
8
+ before do
9
+ @statistics = GovDelivery::TMS::ReportsMessagesEmailStatistics.new(client, href, {})
10
+ end
11
+
12
+ it 'gets OK with params' do
13
+ params = {start: Time.now.beginning_of_hour - 7.days, end: Time.now.beginning_of_hour}
14
+ stats = {:recipients => {:new => 5, :sending => 3, :inconclusive => 2, :blacklisted => 1, :canceled => 7, :sent => 80, :failed => 2} }
15
+
16
+
17
+ expect(@statistics.client).to receive('get').with(href, params).and_return(double('response', status: 200, body: stats))
18
+ @statistics.get(params)
19
+ expect(@statistics.recipients).to eq(stats[:recipients])
20
+ expect(@statistics.recipients[:sent]).to eq(80)
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe GovDelivery::TMS::ReportsMessagesSmsStatistics do
4
+ context 'loading sms message statistics' do
5
+ let(:client) { double('client') }
6
+ let(:href) { '/reports/messages/sms/statistics' }
7
+
8
+ before do
9
+ @statistics = GovDelivery::TMS::ReportsMessagesSmsStatistics.new(client, href, {})
10
+ end
11
+
12
+ it 'gets OK with params' do
13
+ params = {start: Time.now.beginning_of_hour - 7.days, end: Time.now.beginning_of_hour}
14
+ stats = {:recipients => {:new => 5, :sending => 3, :inconclusive => 2, :blacklisted => 1, :canceled => 7, :sent => 80, :failed => 2} }
15
+
16
+ expect(@statistics.client).to receive('get').with(href, params).and_return(double('response', status: 200, body: stats))
17
+ @statistics.get(params)
18
+ expect(@statistics.recipients).to eq(stats[:recipients])
19
+ expect(@statistics.recipients[:sent]).to eq(80)
20
+ end
21
+ end
22
+ end
@@ -52,7 +52,7 @@ describe GovDelivery::TMS::SmsMessage do
52
52
  end
53
53
  it 'should GET cleanly' do
54
54
  response = { body: 'processed', recipients: [{ phone: '22345678' }], created_at: 'time' }
55
- expect(@message.client).to receive('get').with(@message.href).and_return(double('response', status: 200, body: response))
55
+ expect(@message.client).to receive('get').with(@message.href, {}).and_return(double('response', status: 200, body: response))
56
56
  @message.get
57
57
  expect(@message.body).to eq('processed')
58
58
  expect(@message.created_at).to eq('time')
@@ -1,21 +1,33 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe GovDelivery::TMS::SmsMessages do
4
+ let(:href) {'/messages/sms'}
4
5
  context 'creating a new messages list' do
5
- let(:client) do
6
- double('client')
7
- end
6
+ let(:client) {double('client')}
7
+ let(:messages) {[
8
+ { short_body: 'hi ho', created_at: 'a while ago' },
9
+ { short_body: 'hello', created_at: 'longer ago' },
10
+ { short_body: 'yo', created_at: 'even longer ago' }
11
+ ]}
12
+
8
13
  before do
9
- @messages = GovDelivery::TMS::SmsMessages.new(client, '/messages')
14
+ @messages = GovDelivery::TMS::SmsMessages.new(client, href)
10
15
  end
11
16
  it 'should GET itself' do
12
- body = [{ short_body: 'hi ho', created_at: 'a while ago' }, { short_body: 'feel me flow', created_at: 'longer ago' }]
13
- expect(@messages.client).to receive(:get).and_return(double('response', body: body, status: 200, headers: { 'link' => "</messages/page/2>; rel=\"next\",</messages/page/11>; rel=\"last\"" }))
17
+ expect(@messages.client).to receive(:get).and_return(double('response', body: messages, status: 200, headers: { 'link' => "</messages/sms/page/2>; rel=\"next\",</messages/sms/page/11>; rel=\"last\"" }))
14
18
 
15
19
  @messages.get
20
+ expect(@messages.collection.length).to eq(3)
21
+ expect(@messages.next.href).to eq('/messages/sms/page/2')
22
+ expect(@messages.last.href).to eq('/messages/sms/page/11')
23
+ end
24
+
25
+ it 'should GET ok with parameters' do
26
+ params = {page_size: 2, sort_by: 'created_by', sort_order: 'foobar'}
27
+ expect(@messages.client).to receive(:get).with(href, params).and_return(double('response', body: messages[1..-1], status: 200, headers: { 'link' => "</messages/sms/page/2>; rel=\"next\",</messages/sms/page/11>; rel=\"last\"" }))
28
+
29
+ @messages.get(params)
16
30
  expect(@messages.collection.length).to eq(2)
17
- expect(@messages.next.href).to eq('/messages/page/2')
18
- expect(@messages.last.href).to eq('/messages/page/11')
19
31
  end
20
32
  end
21
33
  end
metadata CHANGED
@@ -1,74 +1,74 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govdelivery-tms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 2.8.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - GovDelivery
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-18 00:00:00.000000000 Z
11
+ date: 2018-05-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: activesupport
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
16
  - - ">="
18
17
  - !ruby/object:Gem::Version
19
18
  version: '0'
20
- type: :runtime
19
+ name: activesupport
21
20
  prerelease: false
21
+ type: :runtime
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: faraday
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - ">="
32
31
  - !ruby/object:Gem::Version
33
32
  version: '0'
34
- type: :runtime
33
+ name: faraday
35
34
  prerelease: false
35
+ type: :runtime
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: faraday_middleware
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
44
  - - ">="
46
45
  - !ruby/object:Gem::Version
47
46
  version: '0'
48
- type: :runtime
47
+ name: faraday_middleware
49
48
  prerelease: false
49
+ type: :runtime
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: mime-types
57
56
  requirement: !ruby/object:Gem::Requirement
58
57
  requirements:
59
- - - "<"
58
+ - - ">="
60
59
  - !ruby/object:Gem::Version
61
- version: '3.0'
62
- type: :runtime
60
+ version: '0'
61
+ name: mime-types
63
62
  prerelease: false
63
+ type: :runtime
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "<"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '3.0'
69
- description: "A reference implementation, written in Ruby,\n to
70
- interact with GovDelivery's TMS API. The client is\n compatible
71
- with Ruby 1.9 and 2.0. "
68
+ version: '0'
69
+ description: "A reference implementation, written in Ruby,\n to\
70
+ \ interact with GovDelivery's TMS API. The client is\n compatible\
71
+ \ with Ruby 1.9 and 2.0. "
72
72
  email:
73
73
  - support@govdelivery.com
74
74
  executables: []
@@ -103,6 +103,8 @@ files:
103
103
  - lib/govdelivery/tms/resource/keyword.rb
104
104
  - lib/govdelivery/tms/resource/message_type.rb
105
105
  - lib/govdelivery/tms/resource/recipient.rb
106
+ - lib/govdelivery/tms/resource/reports_messages_email_statistics.rb
107
+ - lib/govdelivery/tms/resource/reports_messages_sms_statistics.rb
106
108
  - lib/govdelivery/tms/resource/sms_message.rb
107
109
  - lib/govdelivery/tms/resource/sms_template.rb
108
110
  - lib/govdelivery/tms/resource/webhook.rb
@@ -113,6 +115,7 @@ files:
113
115
  - spec/command_types_spec.rb
114
116
  - spec/core_ext_spec.rb
115
117
  - spec/email_message_spec.rb
118
+ - spec/email_messages_spec.rb
116
119
  - spec/email_template_spec.rb
117
120
  - spec/errors_spec.rb
118
121
  - spec/from_address_spec.rb
@@ -122,6 +125,8 @@ files:
122
125
  - spec/keywords_spec.rb
123
126
  - spec/mail/delivery_method_spec.rb
124
127
  - spec/message_types_spec.rb
128
+ - spec/reports_messages_email_statistics_spec.rb
129
+ - spec/reports_messages_sms_statistics_spec.rb
125
130
  - spec/sms_message_spec.rb
126
131
  - spec/sms_messages_spec.rb
127
132
  - spec/spec_helper.rb
@@ -129,7 +134,7 @@ files:
129
134
  homepage: http://govdelivery.com
130
135
  licenses: []
131
136
  metadata: {}
132
- post_install_message:
137
+ post_install_message:
133
138
  rdoc_options: []
134
139
  require_paths:
135
140
  - lib
@@ -144,9 +149,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
144
149
  - !ruby/object:Gem::Version
145
150
  version: '0'
146
151
  requirements: []
147
- rubyforge_project:
148
- rubygems_version: 2.5.2
149
- signing_key:
152
+ rubyforge_project:
153
+ rubygems_version: 2.6.13
154
+ signing_key:
150
155
  specification_version: 4
151
156
  summary: A ruby client to interact with the GovDelivery TMS REST API.
152
157
  test_files:
@@ -154,6 +159,7 @@ test_files:
154
159
  - spec/command_types_spec.rb
155
160
  - spec/core_ext_spec.rb
156
161
  - spec/email_message_spec.rb
162
+ - spec/email_messages_spec.rb
157
163
  - spec/email_template_spec.rb
158
164
  - spec/errors_spec.rb
159
165
  - spec/from_address_spec.rb
@@ -163,6 +169,8 @@ test_files:
163
169
  - spec/keywords_spec.rb
164
170
  - spec/mail/delivery_method_spec.rb
165
171
  - spec/message_types_spec.rb
172
+ - spec/reports_messages_email_statistics_spec.rb
173
+ - spec/reports_messages_sms_statistics_spec.rb
166
174
  - spec/sms_message_spec.rb
167
175
  - spec/sms_messages_spec.rb
168
176
  - spec/spec_helper.rb