gem_update_checker 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -0
- data/README.md +4 -2
- data/lib/gem_update_checker.rb +1 -12
- data/lib/gem_update_checker/client.rb +19 -0
- data/lib/gem_update_checker/version.rb +1 -1
- data/spec/gem_update_checker/client_spec.rb +30 -0
- metadata +5 -4
- data/spec/gem_update_checker_spec.rb +0 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 24de157b6aa47a0e0d1271a4713fb86b5460f5ff
|
4
|
+
data.tar.gz: 79284f644c5528bcdafcbae9a2ed1f6d071035e6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a8109fc9d9d0bda4942e042dd187e18d3096d7c0c1399369f57c8a1538955ca7d830b8483e3d99456440ae9add7bba011d0af273b06e87d9fe5c98f2b15afc97
|
7
|
+
data.tar.gz: 578012a461a58f4de7057661484a4e081f3f336ab62275ddb274b55d5405688b4de57ed1b7725aa826c7c6df2e7dba79d09d0b88c88a6c1fe9b44f74891a9898
|
data/README.md
CHANGED
@@ -28,8 +28,10 @@ require 'gem_update_checker'
|
|
28
28
|
|
29
29
|
gem_name = 'your_gem_name'
|
30
30
|
current_version = '0.0.1'
|
31
|
-
|
32
|
-
|
31
|
+
checker = GemUpdateChecker::Client.new(gem_name, current_version)
|
32
|
+
|
33
|
+
if checker.update_available
|
34
|
+
puts "#{gem_name} #{checker.latest_version} is available"
|
33
35
|
puts "please run gem update #{gem_name}"
|
34
36
|
end
|
35
37
|
```
|
data/lib/gem_update_checker.rb
CHANGED
@@ -2,18 +2,7 @@ require "net/http"
|
|
2
2
|
require "json"
|
3
3
|
|
4
4
|
module GemUpdateChecker
|
5
|
-
RUBYGEMS_API = "https://rubygems.org/api/v1/versions"
|
6
|
-
|
7
|
-
class << self
|
8
|
-
def update_available?(gem_name, current_version)
|
9
|
-
uri = URI("#{RUBYGEMS_API}/#{gem_name}/latest.json")
|
10
|
-
respose = Net::HTTP.get_response uri
|
11
|
-
json = JSON.parse(respose.body)
|
12
|
-
|
13
|
-
latest_version = json["version"]
|
14
|
-
latest_version && Gem::Version.new(latest_version) > Gem::Version.new(current_version)
|
15
|
-
end
|
16
|
-
end
|
17
5
|
end
|
18
6
|
|
7
|
+
require "gem_update_checker/client"
|
19
8
|
require "gem_update_checker/version"
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module GemUpdateChecker
|
2
|
+
class Client
|
3
|
+
|
4
|
+
attr_reader :latest_version, :gem_name, :current_version, :update_available
|
5
|
+
RUBYGEMS_API = "https://rubygems.org/api/v1/versions"
|
6
|
+
|
7
|
+
def initialize(gem_name, current_vesion)
|
8
|
+
@gem_name = gem_name
|
9
|
+
@current_version = current_vesion
|
10
|
+
|
11
|
+
uri = URI("#{RUBYGEMS_API}/#{@gem_name}/latest.json")
|
12
|
+
respose = Net::HTTP.get_response uri
|
13
|
+
json = JSON.parse(respose.body)
|
14
|
+
|
15
|
+
@latest_version = json["version"]
|
16
|
+
@update_available = @latest_version && Gem::Version.new(@latest_version) > Gem::Version.new(@current_version)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
describe GemUpdateChecker::Client do
|
2
|
+
let(:name) {'gem_name'}
|
3
|
+
let(:latest_version) {'1.0.0'}
|
4
|
+
let(:response) {{:version => latest_version}}
|
5
|
+
|
6
|
+
before do
|
7
|
+
stub_request(:get, "#{GemUpdateChecker::Client::RUBYGEMS_API}/#{name}/latest.json").
|
8
|
+
to_return(:body => response.to_json)
|
9
|
+
end
|
10
|
+
|
11
|
+
it "invalid version" do
|
12
|
+
expect{
|
13
|
+
GemUpdateChecker::Client.new(name, 'invalid version')
|
14
|
+
}.to raise_error ArgumentError
|
15
|
+
end
|
16
|
+
|
17
|
+
context "update available" do
|
18
|
+
it "current version is latest" do
|
19
|
+
checker = GemUpdateChecker::Client.new(name, latest_version)
|
20
|
+
expect(checker.update_available).to be_falsey
|
21
|
+
expect(checker.latest_version).to eq latest_version
|
22
|
+
end
|
23
|
+
|
24
|
+
it "update available" do
|
25
|
+
checker = GemUpdateChecker::Client.new(name, '0.0.1')
|
26
|
+
expect(checker.update_available).to be_truthy
|
27
|
+
expect(checker.latest_version).to eq latest_version
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gem_update_checker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- henteko
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-11-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -81,8 +81,9 @@ files:
|
|
81
81
|
- Rakefile
|
82
82
|
- gem_update_checker.gemspec
|
83
83
|
- lib/gem_update_checker.rb
|
84
|
+
- lib/gem_update_checker/client.rb
|
84
85
|
- lib/gem_update_checker/version.rb
|
85
|
-
- spec/
|
86
|
+
- spec/gem_update_checker/client_spec.rb
|
86
87
|
- spec/spec_helper.rb
|
87
88
|
homepage: https://github.com/henteko/gem_update_checker
|
88
89
|
licenses:
|
@@ -109,5 +110,5 @@ signing_key:
|
|
109
110
|
specification_version: 4
|
110
111
|
summary: Check gem update.
|
111
112
|
test_files:
|
112
|
-
- spec/
|
113
|
+
- spec/gem_update_checker/client_spec.rb
|
113
114
|
- spec/spec_helper.rb
|
@@ -1,26 +0,0 @@
|
|
1
|
-
describe GemUpdateChecker do
|
2
|
-
context "#update_available?" do
|
3
|
-
let(:name) {'gem_name'}
|
4
|
-
let(:latest_version) {'1.0.0'}
|
5
|
-
let(:response) {{:version => latest_version}}
|
6
|
-
|
7
|
-
before do
|
8
|
-
stub_request(:get, "#{GemUpdateChecker::RUBYGEMS_API}/#{name}/latest.json").
|
9
|
-
to_return(:body => response.to_json)
|
10
|
-
end
|
11
|
-
|
12
|
-
it "current version is latest" do
|
13
|
-
expect(GemUpdateChecker.update_available?(name, latest_version)).to be_falsey
|
14
|
-
end
|
15
|
-
|
16
|
-
it "update available" do
|
17
|
-
expect(GemUpdateChecker.update_available?(name, '0.0.1')).to be_truthy
|
18
|
-
end
|
19
|
-
|
20
|
-
it "invalid version" do
|
21
|
-
expect{
|
22
|
-
GemUpdateChecker.update_available?(name, 'invalid version')
|
23
|
-
}.to raise_error ArgumentError
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|