kdep 0.3.2 → 0.3.3

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
  SHA256:
3
- metadata.gz: 31b9cdda6d1844d118db0fb9d4e5a15b77fca16cbce57be97087972df0bcc202
4
- data.tar.gz: e2c9d713663d6e682ac3cf73808af7d34da016ee424ffe0b6df4199d9368bf55
3
+ metadata.gz: 95e9b9f35fb62ccb1d6e7e3c375e0a68e629b7bc81f7959c57d14eb33af19e5d
4
+ data.tar.gz: 5f5e8d59539c690e57d110fd109ea4c38d34081747f62f08e60b9397991faae4
5
5
  SHA512:
6
- metadata.gz: 3f9b2177e397d00f9ba41cb5cc28cda8bd33a4167a7849f58f65ef5a05e611500a8d8813400344738293889614fbf859d10c018a564cdc445263fbaf4cea8a75
7
- data.tar.gz: c493a225039f31dfe0460db182a134e7c28e41d44f3d6aff9a54acd6c02ab4b6ca01f32b31435da7591ff432a7323ae199362233d166c87e212377c824342d75
6
+ metadata.gz: 7a208e0fdc9c932ddb5a1c68cc5d15401e95fd18fb598293045cb0beeef43c74d38a3300224f961d30dba477702279af0caa0e86116beafa8ea14d678783adb3
7
+ data.tar.gz: 3046797ac1769ac6c238a1fd8de10be4fac0bab2492557bb0a27447470d5cac6edf222779dd59195d9be0d1253935fbdffbb3e728e97ea3352e08883c3cef5a6
data/lib/kdep/cli.rb CHANGED
@@ -28,6 +28,8 @@ module Kdep
28
28
  end
29
29
 
30
30
  def run
31
+ Kdep::UpdateCheck.run
32
+
31
33
  global_parser.order!(@argv, into: @global_options)
32
34
  command_name = @argv.shift
33
35
 
@@ -0,0 +1,59 @@
1
+ require "net/http"
2
+ require "json"
3
+
4
+ module Kdep
5
+ module UpdateCheck
6
+ CACHE_FILE = File.join(Dir.home, ".kdep_update_check")
7
+ CHECK_INTERVAL = 3600 # seconds between remote checks
8
+
9
+ def self.run
10
+ return if recently_checked?
11
+
12
+ Thread.new { check_and_notify }
13
+ end
14
+
15
+ def self.check_and_notify
16
+ latest = fetch_latest_version
17
+ return unless latest
18
+
19
+ File.write(CACHE_FILE, Time.now.to_i.to_s)
20
+
21
+ if newer?(latest, Kdep::VERSION)
22
+ $stderr.puts "\e[33mupdate available: kdep #{Kdep::VERSION} → #{latest} (gem update kdep)\e[0m"
23
+ end
24
+ rescue StandardError
25
+ # never break the user's workflow
26
+ end
27
+
28
+ def self.recently_checked?
29
+ return false unless File.exist?(CACHE_FILE)
30
+
31
+ last_check = File.read(CACHE_FILE).strip.to_i
32
+ (Time.now.to_i - last_check) < CHECK_INTERVAL
33
+ end
34
+
35
+ def self.fetch_latest_version
36
+ uri = URI("https://rubygems.org/api/v1/versions/kdep/latest.json")
37
+ http = Net::HTTP.new(uri.host, uri.port)
38
+ http.use_ssl = true
39
+ http.open_timeout = 2
40
+ http.read_timeout = 2
41
+ response = http.get(uri.request_uri)
42
+ return nil unless response.is_a?(Net::HTTPSuccess)
43
+
44
+ JSON.parse(response.body)["version"]
45
+ end
46
+
47
+ def self.newer?(latest, current)
48
+ latest_parts = latest.split(".").map(&:to_i)
49
+ current_parts = current.split(".").map(&:to_i)
50
+ latest_parts.zip(current_parts).each do |l, c|
51
+ return true if (l || 0) > (c || 0)
52
+ return false if (l || 0) < (c || 0)
53
+ end
54
+ false
55
+ end
56
+
57
+ private_class_method :check_and_notify, :recently_checked?, :fetch_latest_version, :newer?
58
+ end
59
+ end
data/lib/kdep/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Kdep
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.3"
3
3
  end
data/lib/kdep.rb CHANGED
@@ -42,6 +42,7 @@ require "kdep/dashboard/log_panel"
42
42
  require "kdep/dashboard/resources_panel"
43
43
  require "kdep/dashboard/health_panel"
44
44
  require "kdep/dashboard"
45
+ require "kdep/update_check"
45
46
  require "kdep/cli"
46
47
 
47
48
  module Kdep
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kdep
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Leadfy
@@ -103,6 +103,7 @@ files:
103
103
  - lib/kdep/renderer.rb
104
104
  - lib/kdep/template_context.rb
105
105
  - lib/kdep/ui.rb
106
+ - lib/kdep/update_check.rb
106
107
  - lib/kdep/validator.rb
107
108
  - lib/kdep/version.rb
108
109
  - lib/kdep/version_tagger.rb