travis_check_rubies 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +6 -4
- data/lib/travis_check_rubies.rb +1 -1
- data/lib/travis_check_rubies/fetcher.rb +44 -0
- data/lib/travis_check_rubies/rvm_index.rb +11 -0
- data/lib/travis_check_rubies/travis_index.rb +33 -0
- data/lib/travis_check_rubies/travis_yml.rb +3 -2
- data/lib/travis_check_rubies/version.rb +4 -54
- data/spec/travis_check_rubies/fetcher_spec.rb +48 -0
- data/spec/travis_check_rubies/travis_index_spec.rb +50 -0
- data/spec/travis_check_rubies/version_spec.rb +4 -114
- data/travis_check_rubies.gemspec +1 -1
- metadata +11 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 15957908f03062b38d455967278099f4dfe2c238b776dd7b857085b65d8a2874
|
4
|
+
data.tar.gz: c669a1631123c15e642b57c62a1c50a0ce9a00aa538a9382604fb4f57680f7d2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 860cbc5c33ecf76f270430024f3c0d6e352431b0b095b7fb011214a57e60f5b0b57297b009f5792b6795968430458d8aeeb5ac6edd77350e9d465a754b50ff42
|
7
|
+
data.tar.gz: '08a6fe9982b9d32b29b063585574655d6f24ec5e4539ae079d61f8e1c0d0ad6f0a568ab5b53c284b16c452401d997bad4723de3d29576445b39ac6473b8cfe10'
|
data/.travis.yml
CHANGED
data/lib/travis_check_rubies.rb
CHANGED
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'digest'
|
2
|
+
require 'fspath'
|
3
|
+
require 'net/http'
|
4
|
+
require 'uri'
|
5
|
+
|
6
|
+
module TravisCheckRubies
|
7
|
+
class Fetcher
|
8
|
+
CACHE_TIME = 24 * 60 * 60
|
9
|
+
|
10
|
+
attr_reader :url
|
11
|
+
|
12
|
+
def initialize(url)
|
13
|
+
@url = url
|
14
|
+
end
|
15
|
+
|
16
|
+
def data
|
17
|
+
cached_data || fetch_data
|
18
|
+
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
def cache_path
|
23
|
+
@cache_path ||= FSPath(ENV['XDG_CACHE_HOME'] || '~/.cache').expand_path / "travis_check_rubies.#{Digest::SHA1.hexdigest url}"
|
24
|
+
end
|
25
|
+
|
26
|
+
def cached_data
|
27
|
+
return unless cache_path.size?
|
28
|
+
return unless cache_path.mtime + CACHE_TIME > Time.now
|
29
|
+
cache_path.read
|
30
|
+
end
|
31
|
+
|
32
|
+
def fetch_data
|
33
|
+
data = Net::HTTP.get(URI(url))
|
34
|
+
|
35
|
+
cache_path.dirname.mkpath
|
36
|
+
FSPath.temp_file('travis_check_rubies', cache_path.dirname) do |f|
|
37
|
+
f.write(data)
|
38
|
+
f.path.rename(cache_path)
|
39
|
+
end
|
40
|
+
|
41
|
+
data
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require_relative 'fetcher'
|
2
|
+
|
3
|
+
module TravisCheckRubies
|
4
|
+
class TravisIndex
|
5
|
+
ROOT_URL = 'https://rubies.travis-ci.org/'
|
6
|
+
|
7
|
+
def version_strings
|
8
|
+
index_urls.select do |url|
|
9
|
+
url.start_with?(base_url)
|
10
|
+
end.map do |url|
|
11
|
+
url[%r{([^/]+)\.tar\.(?:gz|bz2)$}, 1]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def index_urls
|
18
|
+
@index_urls ||= TravisCheckRubies::Fetcher.new(ROOT_URL + 'index.txt').data.split("\n")
|
19
|
+
end
|
20
|
+
|
21
|
+
def base_url
|
22
|
+
@base_url ||= if ENV['TRAVIS']
|
23
|
+
sys_path = `rvm debug`[/(?:system|remote.path):\s*"(.*?)"/, 1]
|
24
|
+
"#{ROOT_URL}#{sys_path}/"
|
25
|
+
else
|
26
|
+
base_ubuntu_url = "#{ROOT_URL}ubuntu/"
|
27
|
+
first_ubuntu_url = index_urls.sort.find{ |url| url.start_with?(base_ubuntu_url) }
|
28
|
+
fail "First ubuntu url (#{ROOT_URL}ubuntu/*) not fount out of:\n#{index_urls.join("\n")}" unless first_ubuntu_url
|
29
|
+
first_ubuntu_url[%r{^.*/}]
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -1,26 +1,17 @@
|
|
1
|
-
require 'net/http'
|
2
|
-
require 'fspath'
|
3
1
|
require 'set'
|
4
|
-
|
2
|
+
|
3
|
+
require_relative 'rvm_index'
|
4
|
+
require_relative 'travis_index'
|
5
5
|
|
6
6
|
module TravisCheckRubies
|
7
7
|
class Version
|
8
|
-
ROOT_URL = 'https://rubies.travis-ci.org/'
|
9
|
-
CACHE_TIME = 24 * 60 * 60
|
10
|
-
|
11
8
|
class << self
|
12
9
|
def convert(version_or_string)
|
13
10
|
version_or_string.is_a?(self) ? version_or_string : new(version_or_string)
|
14
11
|
end
|
15
12
|
|
16
13
|
def available
|
17
|
-
@available ||=
|
18
|
-
index_urls.select do |url|
|
19
|
-
url.start_with?(base_url)
|
20
|
-
end.map do |url|
|
21
|
-
new(url[%r{([^/]+)\.tar\.(?:gz|bz2)$}, 1])
|
22
|
-
end.sort
|
23
|
-
end
|
14
|
+
@available ||= [TravisIndex, RvmIndex].map(&:new).map(&:version_strings).inject(:|).map{ |s| new(s) }.sort
|
24
15
|
end
|
25
16
|
|
26
17
|
def update(version, parts: 0..2, allow_pre: false, intermediary: true, exclude: [], conservative: false)
|
@@ -72,47 +63,6 @@ module TravisCheckRubies
|
|
72
63
|
|
73
64
|
Hash[versions.map{ |v| [v, updates[v]] }]
|
74
65
|
end
|
75
|
-
|
76
|
-
private
|
77
|
-
|
78
|
-
def cache_path
|
79
|
-
@cache_path ||= FSPath(ENV['XDG_CACHE_HOME'] || '~/.cache').expand_path / 'travis_check_rubies.txt'
|
80
|
-
end
|
81
|
-
|
82
|
-
def index_urls
|
83
|
-
@index_urls ||= (cached_index_data || fetch_index_data).split("\n")
|
84
|
-
end
|
85
|
-
|
86
|
-
def cached_index_data
|
87
|
-
return unless cache_path.size?
|
88
|
-
return unless cache_path.mtime + CACHE_TIME > Time.now
|
89
|
-
data = cache_path.read
|
90
|
-
data if data.start_with?(ROOT_URL)
|
91
|
-
end
|
92
|
-
|
93
|
-
def fetch_index_data
|
94
|
-
data = Net::HTTP.get(URI(ROOT_URL + 'index.txt'))
|
95
|
-
|
96
|
-
cache_path.dirname.mkpath
|
97
|
-
FSPath.temp_file('travis_check_rubies', cache_path.dirname) do |f|
|
98
|
-
f.write(data)
|
99
|
-
f.path.rename(cache_path)
|
100
|
-
end
|
101
|
-
|
102
|
-
data
|
103
|
-
end
|
104
|
-
|
105
|
-
def base_url
|
106
|
-
@base_url ||= if ENV['TRAVIS']
|
107
|
-
sys_path = `rvm debug`[/(?:system|remote.path):\s*"(.*?)"/, 1]
|
108
|
-
"#{ROOT_URL}#{sys_path}/"
|
109
|
-
else
|
110
|
-
base_ubuntu_url = "#{ROOT_URL}ubuntu/"
|
111
|
-
first_ubuntu_url = index_urls.sort.find{ |url| url.start_with?(base_ubuntu_url) }
|
112
|
-
fail "First ubuntu url (#{ROOT_URL}ubuntu/*) not fount out of:\n#{index_urls.join("\n")}" unless first_ubuntu_url
|
113
|
-
first_ubuntu_url[%r{^.*/}]
|
114
|
-
end
|
115
|
-
end
|
116
66
|
end
|
117
67
|
|
118
68
|
include Comparable
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'travis_check_rubies/fetcher'
|
3
|
+
|
4
|
+
describe TravisCheckRubies::Fetcher do
|
5
|
+
describe '#data' do
|
6
|
+
subject{ described_class.new(url) }
|
7
|
+
|
8
|
+
let(:url){ 'https://example.com/index.txt' }
|
9
|
+
let(:cache_path){ FSPath.temp_file_path }
|
10
|
+
|
11
|
+
before do
|
12
|
+
allow(subject).to receive(:cache_path).and_return(cache_path)
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'returns data from url' do
|
16
|
+
allow(Net::HTTP).to receive(:get).with(URI(url)).
|
17
|
+
and_return("one\ntwo\nthree")
|
18
|
+
|
19
|
+
expect(subject.data).to eq("one\ntwo\nthree")
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'caches result' do
|
23
|
+
allow(Net::HTTP).to receive(:get).with(URI(url)).
|
24
|
+
once.and_return("a\nb\nc")
|
25
|
+
|
26
|
+
3.times{ expect(subject.data).to eq("a\nb\nc") }
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'reads cache from file if it is new' do
|
30
|
+
cache_path.write "foo\nbar"
|
31
|
+
allow(cache_path).to receive(:size?).and_return(616)
|
32
|
+
allow(cache_path).to receive(:mtime).and_return(Time.now - described_class::CACHE_TIME / 2)
|
33
|
+
|
34
|
+
expect(Net::HTTP).not_to receive(:get)
|
35
|
+
expect(subject.data).to eq("foo\nbar")
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'writes cache file if it is stale' do
|
39
|
+
allow(cache_path).to receive(:size?).and_return(616)
|
40
|
+
allow(cache_path).to receive(:mtime).and_return(Time.now - described_class::CACHE_TIME * 2)
|
41
|
+
allow(Net::HTTP).to receive(:get).with(URI(url)).
|
42
|
+
once.and_return("brave\nnew\nworld")
|
43
|
+
|
44
|
+
expect(subject.data).to eq("brave\nnew\nworld")
|
45
|
+
expect(cache_path.read).to eq("brave\nnew\nworld")
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'travis_check_rubies/travis_index'
|
3
|
+
|
4
|
+
describe TravisCheckRubies::TravisIndex do
|
5
|
+
describe '#base_url' do
|
6
|
+
before do
|
7
|
+
allow(ENV).to receive(:[]).with('TRAVIS').and_return(env_travis)
|
8
|
+
end
|
9
|
+
|
10
|
+
context 'when env variable TRAVIS is set' do
|
11
|
+
let(:env_travis){ 'true' }
|
12
|
+
|
13
|
+
it 'gets base_url from rvm debug' do
|
14
|
+
|
15
|
+
allow(subject).to receive(:`).with('rvm debug').
|
16
|
+
and_return(%Q{ foo: "xxx" \n system: "XXX/YYY" \n bar: "yyy" })
|
17
|
+
|
18
|
+
expect(subject.send(:base_url)).to eq('https://rubies.travis-ci.org/XXX/YYY/')
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
context 'when env variable TRAVIS is not set' do
|
23
|
+
let(:env_travis){ nil }
|
24
|
+
|
25
|
+
it 'gets base_url from first ubuntu url in index' do
|
26
|
+
allow(subject).to receive(:index_urls).and_return(%w[
|
27
|
+
https://rubies.travis-ci.org/osx/AAA/1.tar.gz
|
28
|
+
https://rubies.travis-ci.org/ubuntu/ZZZ/2.tar.gz
|
29
|
+
https://rubies.travis-ci.org/ubuntu/BBB/3.tar.gz
|
30
|
+
])
|
31
|
+
|
32
|
+
expect(subject.send(:base_url)).to eq('https://rubies.travis-ci.org/ubuntu/BBB/')
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe '#version_strings' do
|
38
|
+
it 'gets versions from index urls matching base_url' do
|
39
|
+
allow(subject).to receive(:index_urls).and_return(%w[
|
40
|
+
https://rubies.travis-ci.org/osx/AAA/1.tar.gz
|
41
|
+
https://rubies.travis-ci.org/ubuntu/ZZZ/2.tar.gz
|
42
|
+
https://rubies.travis-ci.org/ubuntu/BBB/4.tar.gz
|
43
|
+
https://rubies.travis-ci.org/ubuntu/BBB/3.tar.bz2
|
44
|
+
])
|
45
|
+
allow(subject).to receive(:base_url).and_return('https://rubies.travis-ci.org/ubuntu/BBB/')
|
46
|
+
|
47
|
+
expect(subject.version_strings).to match_array(%w[3 4])
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -10,12 +10,6 @@ describe TravisCheckRubies::Version do
|
|
10
10
|
strs.map{ |str| described_class.new(str) }
|
11
11
|
end
|
12
12
|
|
13
|
-
def cleanup_instance_variables(o)
|
14
|
-
o.instance_variables.each do |name|
|
15
|
-
o.remove_instance_variable(name)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
13
|
describe 'parsing' do
|
20
14
|
{
|
21
15
|
'1.2.3-pre1' => {
|
@@ -202,116 +196,12 @@ describe TravisCheckRubies::Version do
|
|
202
196
|
end
|
203
197
|
end
|
204
198
|
|
205
|
-
describe '.index_urls' do
|
206
|
-
let(:cache_path){ FSPath.temp_file_path }
|
207
|
-
|
208
|
-
before do
|
209
|
-
cleanup_instance_variables(described_class)
|
210
|
-
allow(described_class).to receive(:cache_path).and_return(cache_path)
|
211
|
-
end
|
212
|
-
|
213
|
-
it 'returns urls from text index of rubies.travis-ci.org' do
|
214
|
-
allow(Net::HTTP).to receive(:get).with(URI('https://rubies.travis-ci.org/index.txt')).
|
215
|
-
and_return("one\ntwo\nthree")
|
216
|
-
|
217
|
-
expect(described_class.send(:index_urls)).to eq(%w[one two three])
|
218
|
-
end
|
219
|
-
|
220
|
-
it 'caches result' do
|
221
|
-
allow(Net::HTTP).to receive(:get).with(URI('https://rubies.travis-ci.org/index.txt')).
|
222
|
-
once.and_return("a\nb\nc")
|
223
|
-
|
224
|
-
3.times{ expect(described_class.send(:index_urls)).to eq(%w[a b c]) }
|
225
|
-
end
|
226
|
-
|
227
|
-
it 'reads cache from file if it is new' do
|
228
|
-
cache_path.write "https://rubies.travis-ci.org/foo"
|
229
|
-
allow(cache_path).to receive(:size?).and_return(616)
|
230
|
-
allow(cache_path).to receive(:mtime).and_return(Time.now - described_class::CACHE_TIME / 2)
|
231
|
-
|
232
|
-
expect(Net::HTTP).not_to receive(:get)
|
233
|
-
expect(described_class.send(:index_urls)).to eq(%w[https://rubies.travis-ci.org/foo])
|
234
|
-
end
|
235
|
-
|
236
|
-
it 'ignores bad cache' do
|
237
|
-
cache_path.write "http://rubies.travis-ci.org/foo"
|
238
|
-
allow(cache_path).to receive(:size?).and_return(616)
|
239
|
-
allow(cache_path).to receive(:mtime).and_return(Time.now - described_class::CACHE_TIME / 2)
|
240
|
-
|
241
|
-
allow(Net::HTTP).to receive(:get).with(URI('https://rubies.travis-ci.org/index.txt')).
|
242
|
-
once.and_return("brave\nnew\nworld")
|
243
|
-
expect(described_class.send(:index_urls)).to eq(%w[brave new world])
|
244
|
-
expect(cache_path.read).to eq("brave\nnew\nworld")
|
245
|
-
end
|
246
|
-
|
247
|
-
it 'writes cache file if it is stale' do
|
248
|
-
allow(cache_path).to receive(:size?).and_return(616)
|
249
|
-
allow(cache_path).to receive(:mtime).and_return(Time.now - described_class::CACHE_TIME * 2)
|
250
|
-
allow(Net::HTTP).to receive(:get).with(URI('https://rubies.travis-ci.org/index.txt')).
|
251
|
-
once.and_return("brave\nnew\nworld")
|
252
|
-
|
253
|
-
expect(described_class.send(:index_urls)).to eq(%w[brave new world])
|
254
|
-
expect(cache_path.read).to eq("brave\nnew\nworld")
|
255
|
-
end
|
256
|
-
end
|
257
|
-
|
258
|
-
describe '.base_url' do
|
259
|
-
before do
|
260
|
-
cleanup_instance_variables(described_class)
|
261
|
-
allow(ENV).to receive(:[]).with('TRAVIS').and_return(env_travis)
|
262
|
-
end
|
263
|
-
|
264
|
-
context 'when env variable TRAVIS is set' do
|
265
|
-
let(:env_travis){ 'true' }
|
266
|
-
|
267
|
-
it 'gets base_url from rvm debug' do
|
268
|
-
allow(described_class).to receive(:`).with('rvm debug').
|
269
|
-
and_return(%Q{ foo: "xxx" \n system: "XXX/YYY" \n bar: "yyy" })
|
270
|
-
|
271
|
-
expect(described_class.send(:base_url)).to eq('https://rubies.travis-ci.org/XXX/YYY/')
|
272
|
-
end
|
273
|
-
end
|
274
|
-
|
275
|
-
context 'when env variable TRAVIS is not set' do
|
276
|
-
let(:env_travis){ nil }
|
277
|
-
|
278
|
-
it 'gets base_url from first ubuntu url in index' do
|
279
|
-
allow(described_class).to receive(:index_urls).and_return(%w[
|
280
|
-
https://rubies.travis-ci.org/osx/AAA/1.tar.gz
|
281
|
-
https://rubies.travis-ci.org/ubuntu/ZZZ/2.tar.gz
|
282
|
-
https://rubies.travis-ci.org/ubuntu/BBB/3.tar.gz
|
283
|
-
])
|
284
|
-
|
285
|
-
expect(described_class.send(:base_url)).to eq('https://rubies.travis-ci.org/ubuntu/BBB/')
|
286
|
-
end
|
287
|
-
end
|
288
|
-
end
|
289
|
-
|
290
199
|
describe '.available' do
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
it 'gets sorted versions from index urls matching base_url' do
|
296
|
-
allow(described_class).to receive(:index_urls).and_return(%w[
|
297
|
-
https://rubies.travis-ci.org/osx/AAA/1.tar.gz
|
298
|
-
https://rubies.travis-ci.org/ubuntu/ZZZ/2.tar.gz
|
299
|
-
https://rubies.travis-ci.org/ubuntu/BBB/4.tar.gz
|
300
|
-
https://rubies.travis-ci.org/ubuntu/BBB/3.tar.bz2
|
301
|
-
])
|
302
|
-
allow(described_class).to receive(:base_url).and_return('https://rubies.travis-ci.org/ubuntu/BBB/')
|
303
|
-
|
304
|
-
expect(described_class.available).to eq([v('3'), v('4')])
|
305
|
-
end
|
306
|
-
|
307
|
-
it 'caches result' do
|
308
|
-
allow(described_class).to receive(:index_urls).once.and_return(%w[
|
309
|
-
https://rubies.travis-ci.org/ubuntu/CCC/a.tar.gz
|
310
|
-
https://rubies.travis-ci.org/ubuntu/CCC/b.tar.bz2
|
311
|
-
])
|
312
|
-
allow(described_class).to receive(:base_url).and_return('https://rubies.travis-ci.org/ubuntu/CCC/')
|
200
|
+
it 'gets distinct sorted versions by combining indexes' do
|
201
|
+
allow(TravisCheckRubies::TravisIndex).to receive(:new).and_return(double(version_strings: %w[e d c b a]))
|
202
|
+
allow(TravisCheckRubies::RvmIndex).to receive(:new).and_return(double(version_strings: %w[d e f g h]))
|
313
203
|
|
314
|
-
|
204
|
+
expect(described_class.available).to eq(vs(%w[a b c d e f g h]))
|
315
205
|
end
|
316
206
|
end
|
317
207
|
|
data/travis_check_rubies.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = 'travis_check_rubies'
|
5
|
-
s.version = '0.
|
5
|
+
s.version = '0.5.0'
|
6
6
|
s.summary = 'Are you using the latest rubies in .travis.yml?'
|
7
7
|
s.description = 'Check if `.travis.yml` specifies latest available rubies from listed on https://rubies.travis-ci.org and propose changes'
|
8
8
|
s.homepage = "http://github.com/toy/#{s.name}"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: travis_check_rubies
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ivan Kuchin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-09-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fspath
|
@@ -67,9 +67,14 @@ files:
|
|
67
67
|
- README.markdown
|
68
68
|
- bin/travis_check_rubies
|
69
69
|
- lib/travis_check_rubies.rb
|
70
|
+
- lib/travis_check_rubies/fetcher.rb
|
71
|
+
- lib/travis_check_rubies/rvm_index.rb
|
72
|
+
- lib/travis_check_rubies/travis_index.rb
|
70
73
|
- lib/travis_check_rubies/travis_yml.rb
|
71
74
|
- lib/travis_check_rubies/updater.rb
|
72
75
|
- lib/travis_check_rubies/version.rb
|
76
|
+
- spec/travis_check_rubies/fetcher_spec.rb
|
77
|
+
- spec/travis_check_rubies/travis_index_spec.rb
|
73
78
|
- spec/travis_check_rubies/updater_spec.rb
|
74
79
|
- spec/travis_check_rubies/version_spec.rb
|
75
80
|
- travis_check_rubies.gemspec
|
@@ -78,7 +83,7 @@ licenses:
|
|
78
83
|
- MIT
|
79
84
|
metadata:
|
80
85
|
bug_tracker_uri: https://github.com/toy/travis_check_rubies/issues
|
81
|
-
documentation_uri: https://www.rubydoc.info/gems/travis_check_rubies/0.
|
86
|
+
documentation_uri: https://www.rubydoc.info/gems/travis_check_rubies/0.5.0
|
82
87
|
source_code_uri: https://github.com/toy/travis_check_rubies
|
83
88
|
post_install_message:
|
84
89
|
rdoc_options: []
|
@@ -95,10 +100,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
95
100
|
- !ruby/object:Gem::Version
|
96
101
|
version: '0'
|
97
102
|
requirements: []
|
98
|
-
rubygems_version: 3.0.
|
103
|
+
rubygems_version: 3.0.6
|
99
104
|
signing_key:
|
100
105
|
specification_version: 4
|
101
106
|
summary: Are you using the latest rubies in .travis.yml?
|
102
107
|
test_files:
|
108
|
+
- spec/travis_check_rubies/fetcher_spec.rb
|
109
|
+
- spec/travis_check_rubies/travis_index_spec.rb
|
103
110
|
- spec/travis_check_rubies/updater_spec.rb
|
104
111
|
- spec/travis_check_rubies/version_spec.rb
|