gem_update_checker 0.1.0 → 0.2.0

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: 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