safe_update 0.4.1 → 0.5.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 +4 -4
- data/lib/safe_update/presenter.rb +59 -3
- data/lib/safe_update/version.rb +1 -1
- data/safe_update.gemspec +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cc5887af06b7dd47ffbbfa102546032c04b822a7
|
4
|
+
data.tar.gz: 27f9c18a2fc9f3485a02eabac559c8b9ec7149f5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c06118f30a3a9919588628501cd2a5dbe14757ab976ab37f8aefc2796bec79acc51d1bcdb0692e3a4dddf6e4b3ddd68b2fc4ad673b37e5cd50f5885d2ac22258
|
7
|
+
data.tar.gz: 9c118d22bf08459890d2a1662253f8dc07935772e70350a2a0db10eeb175101503089e0a95b6197f7627082c8b488a9a83081fbd2be08b0c2216cb234f02c42a
|
@@ -1,7 +1,9 @@
|
|
1
1
|
require 'curses'
|
2
|
+
require 'colorize'
|
2
3
|
|
3
4
|
module SafeUpdate
|
4
5
|
class Presenter
|
6
|
+
include Curses
|
5
7
|
# outdated_gems is an array of instances of SafeUpdate::OutdatedGem
|
6
8
|
|
7
9
|
SPINNER_STATES = ['|', '/', '-', '\\']
|
@@ -9,6 +11,11 @@ module SafeUpdate
|
|
9
11
|
def initialize
|
10
12
|
Curses.noecho
|
11
13
|
Curses.init_screen
|
14
|
+
Curses.start_color
|
15
|
+
Curses.init_pair(COLOR_BLUE, COLOR_BLUE, COLOR_BLACK)
|
16
|
+
Curses.init_pair(COLOR_RED, COLOR_RED, COLOR_BLACK)
|
17
|
+
Curses.init_pair(COLOR_GREEN, COLOR_GREEN, COLOR_BLACK)
|
18
|
+
Curses.init_pair(COLOR_YELLOW, COLOR_YELLOW, COLOR_BLACK)
|
12
19
|
|
13
20
|
@tick = 1
|
14
21
|
@running = true
|
@@ -35,7 +42,13 @@ module SafeUpdate
|
|
35
42
|
puts title
|
36
43
|
puts header
|
37
44
|
@outdated_gems.each do |outdated_gem|
|
38
|
-
|
45
|
+
line = present_single_gem(outdated_gem)
|
46
|
+
color = colorize_color(outdated_gem)
|
47
|
+
if color
|
48
|
+
puts line.send(color)
|
49
|
+
else
|
50
|
+
puts line
|
51
|
+
end
|
39
52
|
end
|
40
53
|
end
|
41
54
|
|
@@ -51,13 +64,20 @@ module SafeUpdate
|
|
51
64
|
@outdated_gems.each_with_index do |outdated_gem, i|
|
52
65
|
Curses.setpos(i + 2, 0)
|
53
66
|
line = present_single_gem(outdated_gem)
|
54
|
-
|
67
|
+
color = curses_color(outdated_gem)
|
68
|
+
if color
|
69
|
+
Curses.attron(color_pair(color)|A_NORMAL){
|
70
|
+
Curses.addstr(line)
|
71
|
+
}
|
72
|
+
else
|
73
|
+
Curses.addstr(line)
|
74
|
+
end
|
55
75
|
Curses.refresh
|
56
76
|
end
|
57
77
|
end
|
58
78
|
|
59
79
|
def title
|
60
|
-
'
|
80
|
+
'Updating your gems... Safely'
|
61
81
|
end
|
62
82
|
|
63
83
|
def current_spinner_state
|
@@ -91,5 +111,41 @@ module SafeUpdate
|
|
91
111
|
def fixed_length_string(str, length)
|
92
112
|
"%-#{length}.#{length}s" % str
|
93
113
|
end
|
114
|
+
|
115
|
+
def curses_color(outdated_gem)
|
116
|
+
case outdated_gem.current_status
|
117
|
+
when OutdatedGem::STATUS_TESTS_FAIL
|
118
|
+
return COLOR_RED
|
119
|
+
when OutdatedGem::STATUS_UPDATING,
|
120
|
+
OutdatedGem::STATUS_TESTING
|
121
|
+
return COLOR_YELLOW
|
122
|
+
when OutdatedGem::STATUS_UPDATED
|
123
|
+
return COLOR_GREEN
|
124
|
+
when OutdatedGem::STATUS_UNCHANGED
|
125
|
+
return COLOR_BLUE
|
126
|
+
when OutdatedGem::STATUS_PENDING
|
127
|
+
return nil # render in default color
|
128
|
+
else
|
129
|
+
return nil
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
def colorize_color(outdated_gem)
|
134
|
+
case outdated_gem.current_status
|
135
|
+
when OutdatedGem::STATUS_TESTS_FAIL
|
136
|
+
return :red
|
137
|
+
when OutdatedGem::STATUS_UPDATING,
|
138
|
+
OutdatedGem::STATUS_TESTING
|
139
|
+
return :yellow
|
140
|
+
when OutdatedGem::STATUS_UPDATED
|
141
|
+
return :green
|
142
|
+
when OutdatedGem::STATUS_UNCHANGED
|
143
|
+
return :blue
|
144
|
+
when OutdatedGem::STATUS_PENDING
|
145
|
+
return nil # render in default color
|
146
|
+
else
|
147
|
+
return nil
|
148
|
+
end
|
149
|
+
end
|
94
150
|
end
|
95
151
|
end
|
data/lib/safe_update/version.rb
CHANGED
data/safe_update.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: safe_update
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joshua Paling
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-10-
|
11
|
+
date: 2016-10-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 1.0.1
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: colorize
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
description:
|
70
84
|
email:
|
71
85
|
- joshua.paling@gmail.com
|