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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0240fd3b6dec841f8abe7318bf1108ef44439cef
4
- data.tar.gz: 30c05615c689e5c291b2f83d057037aac5fd76f1
3
+ metadata.gz: 24de157b6aa47a0e0d1271a4713fb86b5460f5ff
4
+ data.tar.gz: 79284f644c5528bcdafcbae9a2ed1f6d071035e6
5
5
  SHA512:
6
- metadata.gz: 129c8e43d8870d9318ec8e8b16a17c32d48f575be555bc02842862b4b80afe0cc1fcb9698792599777a89920c301d2f3b1cf9bfdf065daf55165870c152f041c
7
- data.tar.gz: 985b06d0eb5626a302dc35366ec0a99226fc0228dc03f330369df8c3bcc1f40fdcda9e5d043019cf817a7ee232304e9df8d69247d9cedf1bfc2f349ce1bfb0f8
6
+ metadata.gz: a8109fc9d9d0bda4942e042dd187e18d3096d7c0c1399369f57c8a1538955ca7d830b8483e3d99456440ae9add7bba011d0af273b06e87d9fe5c98f2b15afc97
7
+ data.tar.gz: 578012a461a58f4de7057661484a4e081f3f336ab62275ddb274b55d5405688b4de57ed1b7725aa826c7c6df2e7dba79d09d0b88c88a6c1fe9b44f74891a9898
data/.gitignore CHANGED
@@ -10,3 +10,5 @@
10
10
 
11
11
  .idea
12
12
  *.iml
13
+
14
+ *.gem
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
- if GemUpdateChecker.update_available?(gem_name, current_version)
32
- puts "update available"
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
  ```
@@ -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
@@ -1,3 +1,3 @@
1
1
  module GemUpdateChecker
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  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.1.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-10-29 00:00:00.000000000 Z
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/gem_update_checker_spec.rb
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/gem_update_checker_spec.rb
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