postmark 1.21.2 → 1.21.6

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
2
  SHA256:
3
- metadata.gz: 968a770c1ef1003b30c635a730caed027ed4579fae5a4c7ab8644996d2925440
4
- data.tar.gz: 824ebb1f5ca038484a5077108df96cbbed072829c2dfd6fbc634f29d299e1675
3
+ metadata.gz: 6b42f4ec6b9f264b0ecdd3b4f6189a68f85436af6953c869d4b5e20d4d08abde
4
+ data.tar.gz: a755605d53ffd4b8ba7f1707b42e97592eb93510968898854456e1ad368f40c2
5
5
  SHA512:
6
- metadata.gz: a4a0bd9ac21b0a25fc377d70dd8d28c07dcb02886f51465d0879d2f1bb24bf8c5628cfc396b6cf6244f3a252fe5e17f7d7d4c10020764036884c1a9b99f3cf0b
7
- data.tar.gz: 732d2a94875cfa132167aca0fcbd551279610a88d87fab34f23a116a568b0ba738e825e09b0b366ed8cb48e2c6bcd2d1b786d08ee8b1e93b35f3f172d911eee1
6
+ metadata.gz: 5b6a7eaec4d234210f99e12ab0bf2301a42e3fcd21f6a369640b3dd032a0a3ba25e1f6a3afd1bcbebceac227802c8e4cea945951923a83c7191154f66ec23512
7
+ data.tar.gz: 35d6d11418ad06fe1e363e9ac794c3cdab319d827a7f4f12b49a3572d04be0f115638880e6ac475b0a9298e2ada84b8055e247c7fe058c2bb3c4fbf6bb748506
@@ -0,0 +1,68 @@
1
+ # In order for builds to pass, in CircleCI you must have following environment variables setub:
2
+ # POSTMARK_API_KEY,POSTMARK_ACCOUNT_API_KEY,POSTMARK_CI_RECIPIENT,POSTMARK_CI_SENDER
3
+
4
+ version: 2.1
5
+
6
+ workflows:
7
+ ruby-tests:
8
+ jobs:
9
+ - unit-tests:
10
+ matrix:
11
+ parameters:
12
+ version: ["2", "2.1", "2.2", "2.3", "2.4", "2.5", "2.6", "2.7"]
13
+ - unit-tests-legacy:
14
+ matrix:
15
+ parameters:
16
+ version: ["kneip/ree-1.8.7-2012.02","ruby:1.9.3","circleci/jruby:9"]
17
+
18
+ orbs:
19
+ ruby: circleci/ruby@0.1.2
20
+
21
+ jobs:
22
+ unit-tests:
23
+ parallelism: 1
24
+ parameters:
25
+ version:
26
+ type: string
27
+ docker:
28
+ - image: circleci/ruby:<< parameters.version >>
29
+ steps:
30
+ - checkout
31
+ - run:
32
+ name: Versions
33
+ command: |
34
+ echo "ruby: $(ruby --version)"
35
+
36
+ - run:
37
+ name: Install dependencies
38
+ command: bundle install
39
+
40
+ - run:
41
+ name: Run tests
42
+ command: bundle exec rake spec
43
+
44
+ unit-tests-legacy:
45
+ parallelism: 1
46
+ environment:
47
+ BUNDLE_GEMFILE: ./gemfiles/Gemfile.legacy
48
+ parameters:
49
+ version:
50
+ type: string
51
+ docker:
52
+ - image: << parameters.version >>
53
+ steps:
54
+ - checkout
55
+ - run:
56
+ name: Versions
57
+ command: |
58
+ echo "ruby: $(ruby --version)"
59
+
60
+ - run:
61
+ name: Install dependencies
62
+ command: |
63
+ gem install bundler --version 1.17.3
64
+ bundle install
65
+
66
+ - run:
67
+ name: Run tests
68
+ command: bundle exec rake spec
data/CHANGELOG.rdoc CHANGED
@@ -1,5 +1,21 @@
1
1
  = Changelog
2
2
 
3
+ == 1.21.6
4
+
5
+ * Improved error handling for email sending related to invalid email addresses
6
+
7
+ == 1.21.5
8
+
9
+ * Added support for archiving/unarchiving message streams
10
+
11
+ == 1.21.4
12
+
13
+ * Fixed Postmark::ApiClient#deliver_messages_with_templates (#104)
14
+
15
+ == 1.21.3
16
+
17
+ * Remove default SSL version setting and rely on Net::HTTP/OpenSSL default.
18
+
3
19
  == 1.21.2
4
20
 
5
21
  * Ensure sending via message stream uses the correct message stream
data/README.md CHANGED
@@ -3,7 +3,8 @@
3
3
  </a>
4
4
 
5
5
  # Postmark Ruby Gem
6
- [![Build Status](https://travis-ci.org/wildbit/postmark-gem.svg?branch=master)](https://travis-ci.org/wildbit/postmark-gem) [![Code Climate](https://codeclimate.com/github/wildbit/postmark-gem/badges/gpa.svg)](https://codeclimate.com/github/wildbit/postmark-gem)
6
+ [![Build Status](https://circleci.com/gh/wildbit/postmark-gem.svg?style=shield)](https://circleci.com/gh/wildbit/postmark-gem)
7
+ [![Code Climate](https://codeclimate.com/github/wildbit/postmark-gem/badges/gpa.svg)](https://codeclimate.com/github/wildbit/postmark-gem)
7
8
  [![License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat)](http://www.opensource.org/licenses/MIT)
8
9
  [![Gem Version](https://badge.fury.io/rb/postmark.svg)](https://badge.fury.io/rb/postmark)
9
10
 
@@ -62,4 +63,4 @@ Refer to the [LICENSE](https://github.com/wildbit/postmark-gem/blob/master/LICEN
62
63
 
63
64
  ## Copyright
64
65
 
65
- Copyright © 2020 Wildbit LLC.
66
+ Copyright © 2021 Wildbit LLC.
data/RELEASE.md ADDED
@@ -0,0 +1,12 @@
1
+ New versions of the gem are cut by the Postmark team, this is a quick guide to ensuring a smooth release.
2
+
3
+ 1. Verify all builds are passing on CircleCI for your branch.
4
+ 1. Merge in your branch to master.
5
+ 1. Update VERSION and lib/postmark/version.rb with the new version.
6
+ 1. Update CHANGELOG.rdoc with a brief description of the changes.
7
+ 1. Commit to git with a comment of "Bump version to x.y.z".
8
+ 1. run `rake release` - This will push to github(with the version tag) and rubygems with the version in lib/postmark/version.rb.
9
+ *Note that if you're on Bundler 1.17 there's a bug that hides the prompt for your OTP. If it hangs after adding the tag then it's asking for your OTP, enter your OTP and press Enter. Bundler 2.x and beyond resolved this issue. *
10
+ 1. Verify the new version is on [github](https://github.com/wildbit/postmark-gem) and [rubygems](https://rubygems.org/gems/postmark).
11
+ 1. Create a new release for the version on [Github releases](https://github.com/wildbit/postmark-gem/releases).
12
+ 1. Add or update any related content to the [wiki](https://github.com/wildbit/postmark-gem/wiki).
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.21.2
1
+ 1.21.4
@@ -81,7 +81,8 @@ module Postmark
81
81
  end
82
82
 
83
83
  in_batches(messages) do |batch, offset|
84
- data = serialize(batch.map { |m| m.to_postmark_hash })
84
+ mapped = batch.map { |m| m.to_postmark_hash }
85
+ data = serialize(:Messages => mapped)
85
86
 
86
87
  with_retries do
87
88
  http_client.post("email/batchWithTemplates", data).tap do |response|
@@ -351,6 +352,14 @@ module Postmark
351
352
  format_response(http_client.patch("message-streams/#{id}", data))
352
353
  end
353
354
 
355
+ def archive_message_stream(id)
356
+ format_response http_client.post("message-streams/#{id}/archive")
357
+ end
358
+
359
+ def unarchive_message_stream(id)
360
+ format_response http_client.post("message-streams/#{id}/unarchive")
361
+ end
362
+
354
363
  def dump_suppressions(stream_id, options = {})
355
364
  _, batch = load_batch("message-streams/#{stream_id}/suppressions/dump", 'Suppressions', options)
356
365
  batch
@@ -30,9 +30,8 @@ module Postmark
30
30
  def initialize(status_code = 500, body = '', parsed_body = {})
31
31
  self.parsed_body = parsed_body
32
32
  self.status_code = status_code.to_i
33
- message = parsed_body.fetch(
34
- 'Message',
35
- "The Postmark API responded with HTTP status #{status_code}.")
33
+ self.body = body
34
+ message = parsed_body.fetch('Message', "The Postmark API responded with HTTP status #{status_code}.")
36
35
 
37
36
  super(message)
38
37
  end
@@ -44,6 +43,7 @@ module Postmark
44
43
 
45
44
  class ApiInputError < HttpServerError
46
45
  INACTIVE_RECIPIENT = 406
46
+ INVALID_EMAIL_ADDRESS = 300
47
47
 
48
48
  attr_accessor :error_code
49
49
 
@@ -52,7 +52,9 @@ module Postmark
52
52
 
53
53
  case error_code
54
54
  when INACTIVE_RECIPIENT
55
- InactiveRecipientError.new(INACTIVE_RECIPIENT, body, parsed_body)
55
+ InactiveRecipientError.new(error_code, body, parsed_body)
56
+ when INVALID_EMAIL_ADDRESS
57
+ InvalidEmailAddressError.new(error_code, body, parsed_body)
56
58
  else
57
59
  new(error_code, body, parsed_body)
58
60
  end
@@ -68,6 +70,8 @@ module Postmark
68
70
  end
69
71
  end
70
72
 
73
+ class InvalidEmailAddressError < ApiInputError; end
74
+
71
75
  class InactiveRecipientError < ApiInputError
72
76
  attr_reader :recipients
73
77
 
@@ -18,8 +18,7 @@ module Postmark
18
18
  :secure => true,
19
19
  :path_prefix => '/',
20
20
  :http_read_timeout => 15,
21
- :http_open_timeout => 5,
22
- :http_ssl_version => :TLSv1
21
+ :http_open_timeout => 5
23
22
  }
24
23
 
25
24
  def initialize(api_token, options = {})
@@ -107,7 +106,7 @@ module Postmark
107
106
  http.read_timeout = self.http_read_timeout
108
107
  http.open_timeout = self.http_open_timeout
109
108
  http.use_ssl = !!self.secure
110
- http.ssl_version = self.http_ssl_version if http.respond_to?(:ssl_version=)
109
+ http.ssl_version = self.http_ssl_version if self.http_ssl_version && http.respond_to?(:ssl_version=)
111
110
  http
112
111
  end
113
112
  end
@@ -1,3 +1,3 @@
1
1
  module Postmark
2
- VERSION = '1.21.2'
2
+ VERSION = '1.21.6'
3
3
  end
data/postmark.gemspec CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |s|
9
9
  s.platform = Gem::Platform::RUBY
10
10
  s.license = 'MIT'
11
11
 
12
- s.authors = ["Petyo Ivanov", "Ilya Sabanin", "Artem Chistyakov"]
13
- s.email = "ilya@wildbit.com"
12
+ s.authors = ["Tomek Maszkowski", "Igor Balos", "Artem Chistyakov", "Nick Hammond", "Petyo Ivanov", "Ilya Sabanin"]
13
+ s.email = "tomek@wildbit.com"
14
14
  s.extra_rdoc_files = ["LICENSE", "README.md"]
15
15
  s.rdoc_options = ["--charset=UTF-8"]
16
16
 
@@ -201,7 +201,7 @@ describe Postmark::ApiClient do
201
201
  describe "#deliver_messages_with_templates" do
202
202
  let(:email) {templated_message.to_postmark_hash}
203
203
  let(:emails) {[email, email, email]}
204
- let(:emails_json) {Postmark::Json.encode(emails)}
204
+ let(:emails_json) {Postmark::Json.encode(:Messages => emails)}
205
205
  let(:response) {[{}, {}, {}]}
206
206
  let(:messages) { Array.new(3) { templated_message } }
207
207
 
@@ -606,10 +606,14 @@ describe Postmark::ApiClient do
606
606
  end
607
607
 
608
608
  describe "#server_info" do
609
- let(:response) {{"Name" => "Testing",
610
- "Color" => "blue",
611
- "InboundHash" => "c2425d77f74f8643e5f6237438086c81",
612
- "SmtpApiActivated" => true}}
609
+ let(:response) {
610
+ {
611
+ "Name" => "Testing",
612
+ "Color" => "blue",
613
+ "InboundHash" => "c2425d77f74f8643e5f6237438086c81",
614
+ "SmtpApiActivated" => true
615
+ }
616
+ }
613
617
 
614
618
  it 'requests server info from Postmark and converts it to ruby format' do
615
619
  expect(http_client).to receive(:get).with('server') {response}
@@ -618,10 +622,14 @@ describe Postmark::ApiClient do
618
622
  end
619
623
 
620
624
  describe "#update_server_info" do
621
- let(:response) {{"Name" => "Testing",
622
- "Color" => "blue",
623
- "InboundHash" => "c2425d77f74f8643e5f6237438086c81",
624
- "SmtpApiActivated" => false}}
625
+ let(:response) {
626
+ {
627
+ "Name" => "Testing",
628
+ "Color" => "blue",
629
+ "InboundHash" => "c2425d77f74f8643e5f6237438086c81",
630
+ "SmtpApiActivated" => false
631
+ }
632
+ }
625
633
  let(:update) {{:smtp_api_activated => false}}
626
634
 
627
635
  it 'updates server info in Postmark and converts it to ruby format' do
@@ -1148,6 +1156,62 @@ describe Postmark::ApiClient do
1148
1156
  }
1149
1157
  end
1150
1158
 
1159
+ describe '#archive_message_stream' do
1160
+ subject { api_client.archive_message_stream(stream_id) }
1161
+
1162
+ let(:stream_id) { 'my-stream'}
1163
+ let(:server_id) { 123 }
1164
+ let(:purge_date) { '2030-08-30T12:30:00.00-04:00' }
1165
+ let(:api_endpoint) { "message-streams/#{stream_id}/archive" }
1166
+ let(:api_response) {{ 'ID' => stream_id, 'ServerID' => server_id, 'ExpectedPurgeDate' => purge_date }}
1167
+
1168
+ before do
1169
+ allow(http_client).to receive(:post).with(api_endpoint) { api_response }
1170
+ end
1171
+
1172
+ it 'calls the API endpoint' do
1173
+ expect(http_client).to receive(:post).with(api_endpoint)
1174
+ subject
1175
+ end
1176
+
1177
+ it 'transforms the API response' do
1178
+ expect(subject).to eq({ :id => stream_id, :server_id => server_id, :expected_purge_date => purge_date })
1179
+ end
1180
+ end
1181
+
1182
+ describe '#unarchive_message_stream' do
1183
+ subject { api_client.unarchive_message_stream(stream_id) }
1184
+
1185
+ let(:stream_id) { 'my-stream'}
1186
+ let(:server_id) { 123 }
1187
+ let(:api_endpoint) { "message-streams/#{stream_id}/unarchive" }
1188
+ let(:api_response) {
1189
+ { 'ID' => stream_id, 'ServerID' => server_id, 'Name' => 'My Stream',
1190
+ 'Description' => 'My test stream.', 'MessageStreamType' => 'Transactional',
1191
+ 'CreatedAt' => '2030-08-30T12:30:00.00-04:00', 'UpdatedAt' => '2030-09-30T12:30:00.00-04:00',
1192
+ 'ArchivedAt'=> nil, 'ExpectedPurgeDate' => nil,
1193
+ 'SubscriptionManagementConfiguration' => { 'UnsubscribeHandlingType' => 'None' } }
1194
+ }
1195
+
1196
+ before do
1197
+ allow(http_client).to receive(:post).with(api_endpoint) { api_response }
1198
+ end
1199
+
1200
+ it 'calls the API endpoint' do
1201
+ expect(http_client).to receive(:post).with(api_endpoint)
1202
+ subject
1203
+ end
1204
+
1205
+ it 'transforms the API response' do
1206
+ expect(subject).to eq({ :id => stream_id, :server_id => server_id, :name => 'My Stream',
1207
+ :description => 'My test stream.', :message_stream_type => 'Transactional',
1208
+ :created_at => '2030-08-30T12:30:00.00-04:00',
1209
+ :updated_at => '2030-09-30T12:30:00.00-04:00',
1210
+ :archived_at => nil , :expected_purge_date => nil ,
1211
+ :subscription_management_configuration => { 'UnsubscribeHandlingType' => 'None' }})
1212
+ end
1213
+ end
1214
+
1151
1215
  describe '#create_suppressions' do
1152
1216
  let(:email_addresses) { nil }
1153
1217
  let(:message_stream_id) { 'outbound' }
@@ -97,6 +97,13 @@ describe(Postmark::ApiInputError) do
97
97
  it_behaves_like 'api input error'
98
98
  end
99
99
 
100
+ context '300' do
101
+ let(:code) {Postmark::ApiInputError::INVALID_EMAIL_ADDRESS}
102
+
103
+ it {is_expected.to be_a(Postmark::InvalidEmailAddressError)}
104
+ it_behaves_like 'api input error'
105
+ end
106
+
100
107
  context 'others' do
101
108
  let(:code) {'9999'}
102
109
 
@@ -142,6 +149,33 @@ describe(Postmark::MailAdapterError) do
142
149
  it {is_expected.to be_a(Postmark::Error)}
143
150
  end
144
151
 
152
+ describe(Postmark::InvalidEmailAddressError) do
153
+ describe '.new' do
154
+ let(:response) {{'Message' => message}}
155
+
156
+ subject do
157
+ Postmark::InvalidEmailAddressError.new(
158
+ Postmark::ApiInputError::INVALID_EMAIL_ADDRESS, Postmark::Json.encode(response), response)
159
+ end
160
+
161
+ let(:message) do
162
+ "Error parsing 'To': Illegal email address 'johne.xample.com'. It must contain the '@' symbol."
163
+ end
164
+
165
+ it 'body is set' do
166
+ expect(subject.body).to eq(Postmark::Json.encode(response))
167
+ end
168
+
169
+ it 'parsed body is set' do
170
+ expect(subject.parsed_body).to eq(response)
171
+ end
172
+
173
+ it 'error code is set' do
174
+ expect(subject.error_code).to eq(Postmark::ApiInputError::INVALID_EMAIL_ADDRESS)
175
+ end
176
+ end
177
+ end
178
+
145
179
  describe(Postmark::InactiveRecipientError) do
146
180
  describe '.parse_recipients' do
147
181
  let(:recipients) do
@@ -209,6 +243,18 @@ describe(Postmark::InactiveRecipientError) do
209
243
  it 'parses recipients from json payload' do
210
244
  expect(subject.recipients).to eq([address])
211
245
  end
246
+
247
+ it 'body is set' do
248
+ expect(subject.body).to eq(Postmark::Json.encode(response))
249
+ end
250
+
251
+ it 'parsed body is set' do
252
+ expect(subject.parsed_body).to eq(response)
253
+ end
254
+
255
+ it 'error code is set' do
256
+ expect(subject.error_code).to eq(Postmark::ApiInputError::INACTIVE_RECIPIENT)
257
+ end
212
258
  end
213
259
  end
214
260
 
@@ -42,9 +42,9 @@ describe Postmark::HttpClient do
42
42
  its(:http_read_timeout) { is_expected.to eq 15 }
43
43
  its(:http_open_timeout) { is_expected.to eq 5 }
44
44
 
45
- it 'use default TLS encryption', :skip_ruby_version => ['1.8.7'] do
45
+ it 'does not provide a default which utilizes the Net::HTTP default', :skip_ruby_version => ['1.8.7'] do
46
46
  http_client = subject.http
47
- expect(http_client.ssl_version).to eq :TLSv1
47
+ expect(http_client.ssl_version).to eq nil
48
48
  end
49
49
  end
50
50
 
@@ -140,7 +140,7 @@ describe Postmark::HttpClient do
140
140
  :status => [ "485", "Custom HTTP response status" ])
141
141
  expect { subject.post(target_path) }.to raise_error Postmark::UnknownError
142
142
  end
143
-
143
+
144
144
  end
145
145
 
146
146
  describe "#get" do
@@ -180,7 +180,7 @@ describe Postmark::HttpClient do
180
180
  :status => [ "485", "Custom HTTP response status" ])
181
181
  expect { subject.get(target_path) }.to raise_error Postmark::UnknownError
182
182
  end
183
-
183
+
184
184
  end
185
185
 
186
186
  describe "#put" do
@@ -223,4 +223,4 @@ describe Postmark::HttpClient do
223
223
  expect { subject.put(target_path) }.to raise_error Postmark::UnknownError
224
224
  end
225
225
  end
226
- end
226
+ end
metadata CHANGED
@@ -1,16 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: postmark
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.21.2
4
+ version: 1.21.6
5
5
  platform: ruby
6
6
  authors:
7
+ - Tomek Maszkowski
8
+ - Igor Balos
9
+ - Artem Chistyakov
10
+ - Nick Hammond
7
11
  - Petyo Ivanov
8
12
  - Ilya Sabanin
9
- - Artem Chistyakov
10
13
  autorequire:
11
14
  bindir: bin
12
15
  cert_chain: []
13
- date: 2020-09-09 00:00:00.000000000 Z
16
+ date: 2021-07-22 00:00:00.000000000 Z
14
17
  dependencies:
15
18
  - !ruby/object:Gem::Dependency
16
19
  name: json
@@ -56,23 +59,24 @@ dependencies:
56
59
  version: '0'
57
60
  description: Use this gem to send emails through Postmark HTTP API and retrieve info
58
61
  about bounces.
59
- email: ilya@wildbit.com
62
+ email: tomek@wildbit.com
60
63
  executables: []
61
64
  extensions: []
62
65
  extra_rdoc_files:
63
66
  - LICENSE
64
67
  - README.md
65
68
  files:
69
+ - ".circleci/config.yml"
66
70
  - ".document"
67
71
  - ".gitignore"
68
72
  - ".rake_tasks"
69
73
  - ".rspec"
70
- - ".travis.yml"
71
74
  - CHANGELOG.rdoc
72
75
  - CONTRIBUTING.md
73
76
  - Gemfile
74
77
  - LICENSE
75
78
  - README.md
79
+ - RELEASE.md
76
80
  - Rakefile
77
81
  - VERSION
78
82
  - gemfiles/Gemfile.legacy
@@ -146,7 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
146
150
  - !ruby/object:Gem::Version
147
151
  version: 1.3.7
148
152
  requirements: []
149
- rubygems_version: 3.1.4
153
+ rubygems_version: 3.2.3
150
154
  signing_key:
151
155
  specification_version: 4
152
156
  summary: Official Postmark API wrapper.
data/.travis.yml DELETED
@@ -1,31 +0,0 @@
1
- env:
2
- global:
3
- # POSTMARK_API_KEY=?
4
- - secure: "ee7WQAGh7zOcoLYYx1k+542cU2R9jovnypCgyKTaBWMtdes3He4NksJGgp3PSgiPOjpYiqncXYZitgo/gKL8cYjtgcP8o/TKbzmHMTHEbD2LRWfIJ6sr4DiGYT1sjKvTLhVhSIh+WVcIXK9X3V5e6VIUfo14RMj6owHD6qv8Bjc="
5
- # POSTMARK_ACCOUNT_API_KEY=?
6
- - secure: "lau1m+ws6T5LBiRXwd+Q0b20Wjh62W/nHnCmzOSZc2+V97XTldl3MCJdXNV7J6X7O9CzFabcAG8FSbGGwPRiyhY/qhxkYSc/9pWE8RUjyCjbw5q2RzZQelMKizyKU92eOjd6jQw/wDSZcww1OceW/pgdRjqEo21Pk6XH2yzLAd8="
7
- # POSTMARK_CI_RECIPIENT=?
8
- - secure: "YnccT2MM+hIfwxl1WtcTk48q+D9XY7p6FTHkeJbUoaT9PFXQqXyUCQpwk5wYAwzZbVWG/CgH4PitWyRbWBP6kAqYKlsnAkQip0FNjs0DbK0SH9YvcFFSDZsTAl9yfwSxlgnBZHGZ49LO3yISMPUOdNn1QmaF4Ndpl4hiycH7UA8="
9
- # POSTMARK_CI_SENDER=?
10
- - secure: "Cz/KfiXkd90GQr+47LunlZnal8clrRpKmZUd9K161RYd5bfkL+P6SnEmhMprwdzomUBqIcqleR9HjmECey2V/Zd9V8vtBaLVZ5CoeMTkz3Tu6SllfmpymkcuJKf7GGizs97gmhPMlJd9iMukL6eqW4/1C9HW0cLZFB/jlzqFHpE="
11
- language: ruby
12
- rvm:
13
- - 2.0.0
14
- - 2.1.9
15
- - 2.2.5
16
- - 2.3.1
17
- - 2.5.7
18
- - 2.6.5
19
- - 2.7.0
20
- matrix:
21
- include:
22
- - rvm: 1.8.7
23
- dist: precise
24
- gemfile: gemfiles/Gemfile.legacy
25
- - rvm: 1.9.3
26
- gemfile: gemfiles/Gemfile.legacy
27
- - rvm: jruby-19mode
28
- jdk: oraclejdk8
29
- dist: trusty
30
- gemfile: gemfiles/Gemfile.legacy
31
- script: bundle exec rake spec