souls 0.22.5 → 0.22.6

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