travis_check_rubies 0.2.0 → 0.2.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bfd262c7e986d7ca949f6811db98ef99f2aab55e
4
- data.tar.gz: 65c395fa0c08ae67e8e0c35f526891091f02ab8d
3
+ metadata.gz: da70d316f180f2b40b4840ea6fe7c886d74ea85a
4
+ data.tar.gz: 76536fb82b627a7f853d3f0c62ca814b6cace50a
5
5
  SHA512:
6
- metadata.gz: 86c99d9aa7055c649b3611d29181429f25b4997c253504c4af5740973606f8838eeb466355d9cb961f07e1e79556d76ef6accb3bc2ad42abcd5767a2054a6b44
7
- data.tar.gz: d71305cf683e36b261330a182b2c77de094e4f6be19b795aed62908091323abb8ad319b3dd37db1b09a9f0879f30d576787be107815fe6e0f9ffd50f2ba7a8f4
6
+ metadata.gz: 285e6d2050aaff7efc281f542f2e83f207859655c1c697452f6505645bdf17cc49750ce120bee743d6b11c0585bb208ded8e62806b7b768eedd328f63dc636d7
7
+ data.tar.gz: e1a3efb71f362b24a51349e9862db65bbd819e4ff9f451e0da4dfd55a4331067c34b6076cf7bd38f14a43a8cc592583e518f2b4bba8560ae21a068f3a5dfc0cf
data/.travis.yml CHANGED
@@ -3,9 +3,9 @@ language: ruby
3
3
  rvm:
4
4
  - '2.0.0-p648'
5
5
  - '2.1.10'
6
- - '2.2.6'
7
- - '2.3.3'
8
- - '2.4.0'
6
+ - '2.2.7'
7
+ - '2.3.4'
8
+ - '2.4.1'
9
9
  - 'jruby-9.0.5.0'
10
10
  - 'jruby-9.1.5.0'
11
11
  script:
data/README.markdown CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  # travis\_check\_rubies
5
5
 
6
- Check if `.travis.yml` specifies latest available rubies from listed on http://rubies.travis-ci.org and propose changes.
6
+ Check if `.travis.yml` specifies latest available rubies from listed on https://rubies.travis-ci.org and propose changes.
7
7
 
8
8
  ## Gem installation
9
9
 
@@ -5,7 +5,7 @@ require 'uri'
5
5
 
6
6
  module TravisCheckRubies
7
7
  class Version
8
- ROOT_URL = 'http://rubies.travis-ci.org/'
8
+ ROOT_URL = 'https://rubies.travis-ci.org/'
9
9
  CACHE_TIME = 24 * 60 * 60
10
10
 
11
11
  class << self
@@ -79,21 +79,26 @@ module TravisCheckRubies
79
79
  end
80
80
 
81
81
  def index_urls
82
- @index_urls ||= begin
83
- if cache_path.size? && cache_path.mtime + CACHE_TIME > Time.now
84
- cache_path.read
85
- else
86
- data = Net::HTTP.get(URI(ROOT_URL + 'index.txt'))
87
-
88
- cache_path.dirname.mkpath
89
- FSPath.temp_file('travis_check_rubies', cache_path.dirname) do |f|
90
- f.write(data)
91
- f.path.rename(cache_path)
92
- end
82
+ @index_urls ||= (cached_index_data || fetch_index_data).split("\n")
83
+ end
93
84
 
94
- data
95
- end
96
- end.split("\n")
85
+ def cached_index_data
86
+ return unless cache_path.size?
87
+ return unless cache_path.mtime + CACHE_TIME > Time.now
88
+ data = cache_path.read
89
+ data if data.start_with?(ROOT_URL)
90
+ end
91
+
92
+ def fetch_index_data
93
+ data = Net::HTTP.get(URI(ROOT_URL + 'index.txt'))
94
+
95
+ cache_path.dirname.mkpath
96
+ FSPath.temp_file('travis_check_rubies', cache_path.dirname) do |f|
97
+ f.write(data)
98
+ f.path.rename(cache_path)
99
+ end
100
+
101
+ data
97
102
  end
98
103
 
99
104
  def base_url
@@ -103,7 +108,7 @@ module TravisCheckRubies
103
108
  else
104
109
  base_ubuntu_url = "#{ROOT_URL}ubuntu/"
105
110
  first_ubuntu_url = index_urls.sort.find{ |url| url.start_with?(base_ubuntu_url) }
106
- fail "First ubuntu url not fount out of:\n#{index_urls.join("\n")}" unless first_ubuntu_url
111
+ fail "First ubuntu url (#{ROOT_URL}ubuntu/*) not fount out of:\n#{index_urls.join("\n")}" unless first_ubuntu_url
107
112
  first_ubuntu_url[%r{^.*/}]
108
113
  end
109
114
  end
@@ -211,32 +211,43 @@ describe TravisCheckRubies::Version do
211
211
  end
212
212
 
213
213
  it 'returns urls from text index of rubies.travis-ci.org' do
214
- allow(Net::HTTP).to receive(:get).with(URI('http://rubies.travis-ci.org/index.txt')).
214
+ allow(Net::HTTP).to receive(:get).with(URI('https://rubies.travis-ci.org/index.txt')).
215
215
  and_return("one\ntwo\nthree")
216
216
 
217
217
  expect(described_class.send(:index_urls)).to eq(%w[one two three])
218
218
  end
219
219
 
220
220
  it 'caches result' do
221
- allow(Net::HTTP).to receive(:get).with(URI('http://rubies.travis-ci.org/index.txt')).
221
+ allow(Net::HTTP).to receive(:get).with(URI('https://rubies.travis-ci.org/index.txt')).
222
222
  once.and_return("a\nb\nc")
223
223
 
224
224
  3.times{ expect(described_class.send(:index_urls)).to eq(%w[a b c]) }
225
225
  end
226
226
 
227
227
  it 'reads cache from file if it is new' do
228
+ cache_path.write "https://rubies.travis-ci.org/foo"
228
229
  allow(cache_path).to receive(:size?).and_return(616)
229
230
  allow(cache_path).to receive(:mtime).and_return(Time.now - described_class::CACHE_TIME / 2)
230
- allow(cache_path).to receive(:read).and_return("foo\nbar")
231
231
 
232
232
  expect(Net::HTTP).not_to receive(:get)
233
- expect(described_class.send(:index_urls)).to eq(%w[foo bar])
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")
234
245
  end
235
246
 
236
247
  it 'writes cache file if it is stale' do
237
248
  allow(cache_path).to receive(:size?).and_return(616)
238
249
  allow(cache_path).to receive(:mtime).and_return(Time.now - described_class::CACHE_TIME * 2)
239
- allow(Net::HTTP).to receive(:get).with(URI('http://rubies.travis-ci.org/index.txt')).
250
+ allow(Net::HTTP).to receive(:get).with(URI('https://rubies.travis-ci.org/index.txt')).
240
251
  once.and_return("brave\nnew\nworld")
241
252
 
242
253
  expect(described_class.send(:index_urls)).to eq(%w[brave new world])
@@ -257,7 +268,7 @@ describe TravisCheckRubies::Version do
257
268
  allow(described_class).to receive(:`).with('rvm debug').
258
269
  and_return(%Q{ foo: "xxx" \n system: "XXX/YYY" \n bar: "yyy" })
259
270
 
260
- expect(described_class.send(:base_url)).to eq('http://rubies.travis-ci.org/XXX/YYY/')
271
+ expect(described_class.send(:base_url)).to eq('https://rubies.travis-ci.org/XXX/YYY/')
261
272
  end
262
273
  end
263
274
 
@@ -266,12 +277,12 @@ describe TravisCheckRubies::Version do
266
277
 
267
278
  it 'gets base_url from first ubuntu url in index' do
268
279
  allow(described_class).to receive(:index_urls).and_return(%w[
269
- http://rubies.travis-ci.org/osx/AAA/1.tar.gz
270
- http://rubies.travis-ci.org/ubuntu/ZZZ/2.tar.gz
271
- http://rubies.travis-ci.org/ubuntu/BBB/3.tar.gz
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
272
283
  ])
273
284
 
274
- expect(described_class.send(:base_url)).to eq('http://rubies.travis-ci.org/ubuntu/BBB/')
285
+ expect(described_class.send(:base_url)).to eq('https://rubies.travis-ci.org/ubuntu/BBB/')
275
286
  end
276
287
  end
277
288
  end
@@ -283,22 +294,22 @@ describe TravisCheckRubies::Version do
283
294
 
284
295
  it 'gets sorted versions from index urls matching base_url' do
285
296
  allow(described_class).to receive(:index_urls).and_return(%w[
286
- http://rubies.travis-ci.org/osx/AAA/1.tar.gz
287
- http://rubies.travis-ci.org/ubuntu/ZZZ/2.tar.gz
288
- http://rubies.travis-ci.org/ubuntu/BBB/4.tar.gz
289
- http://rubies.travis-ci.org/ubuntu/BBB/3.tar.bz2
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
290
301
  ])
291
- allow(described_class).to receive(:base_url).and_return('http://rubies.travis-ci.org/ubuntu/BBB/')
302
+ allow(described_class).to receive(:base_url).and_return('https://rubies.travis-ci.org/ubuntu/BBB/')
292
303
 
293
304
  expect(described_class.available).to eq([v('3'), v('4')])
294
305
  end
295
306
 
296
307
  it 'caches result' do
297
308
  allow(described_class).to receive(:index_urls).once.and_return(%w[
298
- http://rubies.travis-ci.org/ubuntu/CCC/a.tar.gz
299
- http://rubies.travis-ci.org/ubuntu/CCC/b.tar.bz2
309
+ https://rubies.travis-ci.org/ubuntu/CCC/a.tar.gz
310
+ https://rubies.travis-ci.org/ubuntu/CCC/b.tar.bz2
300
311
  ])
301
- allow(described_class).to receive(:base_url).and_return('http://rubies.travis-ci.org/ubuntu/CCC/')
312
+ allow(described_class).to receive(:base_url).and_return('https://rubies.travis-ci.org/ubuntu/CCC/')
302
313
 
303
314
  3.times{ expect(described_class.available).to eq([v('a'), v('b')]) }
304
315
  end
@@ -2,9 +2,9 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'travis_check_rubies'
5
- s.version = '0.2.0'
5
+ s.version = '0.2.1'
6
6
  s.summary = 'Are you using the latest rubies in .travis.yml?'
7
- s.description = 'Check if `.travis.yml` specifies latest available rubies from listed on http://rubies.travis-ci.org and propose changes'
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}"
9
9
  s.authors = ['Ivan Kuchin']
10
10
  s.license = 'MIT'
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.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Kuchin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-11 00:00:00.000000000 Z
11
+ date: 2017-04-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: fspath
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '3.0'
41
41
  description: Check if `.travis.yml` specifies latest available rubies from listed
42
- on http://rubies.travis-ci.org and propose changes
42
+ on https://rubies.travis-ci.org and propose changes
43
43
  email:
44
44
  executables:
45
45
  - travis_check_rubies