souls 0.22.5 → 0.22.6

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
  SHA256:
3
- metadata.gz: bed6004f3170a39620f7834cc1b84a058c389a05900b7310dba4b8a403109591
4
- data.tar.gz: 49a55fb794250d21ddb7933ced45293984d834ff9ab1ac24c77a577178cb4d1a
3
+ metadata.gz: bd2faa6f8e7051a032899708b1dd4bb76d7b26d4356152524033c8d5c681d53c
4
+ data.tar.gz: c348b3a03e2d0424194840c35b30406d5ce8915eb38fe0f98dab027a254d76fb
5
5
  SHA512:
6
- metadata.gz: ece098d4c8d8ec049bffab408f89431ce876af83c2402956ee3d79c554c707c1efc28332163bb0a25cc0a3e7bb7c3c041f9f6dc4f7104731b55c7de0ed8984b4
7
- data.tar.gz: 59df6b7b6d132addba2af753c8148c2d27d67fe88974b998cb3d668aa80efab73ca49e14352e1d1bb77d56b2a6496f0db6b0e0f00309e1cd6459ff9aebe70435
6
+ metadata.gz: 1540b390438a9f73da430fa2ffa7fa29bd134ab043e2aec9e5758f6b26ea381be1990050a6c8c77b2fe1293aadab086937c2b8dd0f93fda84eb72696ef9000a8
7
+ data.tar.gz: c3de92ab1a4305b7e4ca21cb07f31c3ee3e849d18c8d702892394fb761d42bd7cc8f778b35c4f4766af4083e6a1d6e150d71f9d43c2d8cb1d5cf653f2f945d50
data/Gemfile CHANGED
@@ -10,3 +10,4 @@ gem "rake", "13.0.6"
10
10
  gem "rspec", "3.10.0"
11
11
  gem "rubocop", "1.18.3"
12
12
  gem "steep", "0.44.1"
13
+ gem "whirly", "0.3.0"
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- souls (0.22.4)
4
+ souls (0.22.5)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -57,7 +57,7 @@ GEM
57
57
  rubocop-ast (>= 1.7.0, < 2.0)
58
58
  ruby-progressbar (~> 1.7)
59
59
  unicode-display_width (>= 1.4.0, < 3.0)
60
- rubocop-ast (1.7.0)
60
+ rubocop-ast (1.8.0)
61
61
  parser (>= 3.0.1.1)
62
62
  ruby-progressbar (1.11.0)
63
63
  steep (0.44.1)
@@ -74,6 +74,8 @@ GEM
74
74
  tzinfo (2.0.4)
75
75
  concurrent-ruby (~> 1.0)
76
76
  unicode-display_width (2.0.0)
77
+ whirly (0.3.0)
78
+ unicode-display_width (>= 1.1)
77
79
  zeitwerk (2.4.2)
78
80
 
79
81
  PLATFORMS
@@ -88,6 +90,7 @@ DEPENDENCIES
88
90
  rubocop (= 1.18.3)
89
91
  souls!
90
92
  steep (= 0.44.1)
93
+ whirly (= 0.3.0)
91
94
 
92
95
  BUNDLED WITH
93
96
  2.2.23
data/exe/souls CHANGED
@@ -48,7 +48,12 @@ begin
48
48
  when "-v", "--version"
49
49
  puts Souls::VERSION
50
50
  when "gem:update", "gemfile:update"
51
- Souls.update_gemfile
51
+ status = Paint["Checking for updates...", :yellow]
52
+ Whirly.start spinner: "clock", color: :false, interval: 1000, stop: "🎉" do
53
+ Whirly.status = status
54
+ Souls.update_gemfile
55
+ Whirly.status = "Done!"
56
+ end
52
57
  when "add"
53
58
  case ARGV[1]
54
59
  when "mutation"
data/lib/souls.rb CHANGED
@@ -7,6 +7,7 @@ require "json"
7
7
  require "fileutils"
8
8
  require "net/http"
9
9
  require "paint"
10
+ require "whirly"
10
11
 
11
12
  module Souls
12
13
  SOULS_METHODS = [
@@ -54,6 +55,23 @@ module Souls
54
55
  system "gcloud scheduler jobs create http #{app}-awake --schedule '0,10,20,30,40,50 * * * *' --uri #{url} --http-method GET"
55
56
  end
56
57
 
58
+ def show_wait_spinner(fps = 10)
59
+ chars = %w[| / - \\]
60
+ delay = 1.0 / fps
61
+ iter = 0
62
+ spinner = Thread.new do
63
+ while iter
64
+ print chars[(iter += 1) % chars.length]
65
+ sleep delay
66
+ print "\b"
67
+ end
68
+ end
69
+ yield.tap do
70
+ iter = false
71
+ spinner.join
72
+ end
73
+ end
74
+
57
75
  def gemfile_latest_version
58
76
  file_path = "./Gemfile"
59
77
  updated_gems = []
@@ -94,21 +112,41 @@ module Souls
94
112
  tmp_file = "./tmp/Gemfile"
95
113
  new_gems = gemfile_latest_version
96
114
  logs = []
97
- return "Already Up to date!" && puts("Already Up to date!") if new_gems[:gems].blank?
115
+ message = Paint["\nAlready Up to date!", :green]
116
+ return "Already Up to date!" && puts(message) if new_gems[:gems].blank?
98
117
  @i = 0
99
118
  File.open(file_path, "r") do |f|
100
119
  File.open(tmp_file, "w") do |new_line|
101
120
  f.each_line do |line|
102
121
  gem = line.gsub("gem ", "").gsub("\"", "").gsub("\n", "").gsub(" ", "").split(",")
103
122
  if new_gems[:gems].include? gem[0]
104
- logs << Paint % [
105
- "#{gem[0]} %{yellow_text} → %{green_text}",
106
- :blue,
107
- {
108
- yellow_text: ["v#{gem[1]}", :yellow],
109
- green_text: ["v#{new_gems[:updated_gem_versions][@i]}", :green]
110
- }
111
- ]
123
+ old_ver = gem[1].split(".")
124
+ new_ver = new_gems[:updated_gem_versions][@i].split(".")
125
+ if old_ver[0] < new_ver[0]
126
+ logs << Paint % [
127
+ "#{gem[0]} v#{gem[1]} → %{red_text}",
128
+ :white,
129
+ {
130
+ red_text: ["v#{new_gems[:updated_gem_versions][@i]}", :red]
131
+ }
132
+ ]
133
+ elsif old_ver[1] < new_ver[1]
134
+ logs << Paint % [
135
+ "#{gem[0]} v#{gem[1]} → v#{new_ver[0]}.%{yellow_text}",
136
+ :white,
137
+ {
138
+ yellow_text: ["#{new_ver[1]}.#{new_ver[2]}", :yellow]
139
+ }
140
+ ]
141
+ elsif old_ver[2] < new_ver[2]
142
+ logs << Paint % [
143
+ "#{gem[0]} v#{gem[1]} → v#{new_ver[0]}.#{new_ver[1]}.%{green_text}",
144
+ :white,
145
+ {
146
+ green_text: [(new_ver[2]).to_s, :green]
147
+ }
148
+ ]
149
+ end
112
150
  new_line.write "#{new_gems[:lines][@i]}\n"
113
151
  @i += 1
114
152
  else
data/lib/souls/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Souls
2
- VERSION = "0.22.5"
2
+ VERSION = "0.22.6"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: souls
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.5
4
+ version: 0.22.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - POPPIN-FUMI