safe_update 0.4.1 → 0.5.0

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
  SHA1:
3
- metadata.gz: bba79506d40fecac8ada14494ed6c4716cf0dd72
4
- data.tar.gz: 4634161fd299cf504d1e5e8e9335f5792955af82
3
+ metadata.gz: cc5887af06b7dd47ffbbfa102546032c04b822a7
4
+ data.tar.gz: 27f9c18a2fc9f3485a02eabac559c8b9ec7149f5
5
5
  SHA512:
6
- metadata.gz: 6333d5fa8b75759fdee92de16ff01644dbc016ef4b6a53b3e7d9914f80bdb8edbe91a211271c605fa3ae61b5f1c648ed94a173278327a75b3ec778237b93c6a0
7
- data.tar.gz: 748b56136a743b01c7f5510cbfe169d596173365f553416cff90d18a61f2b8609ca9344718c1734c76425568c2ee023bb9c079c3a0b27c27fce5ed11361f8e91
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
- puts present_single_gem(outdated_gem)
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
- Curses.addstr(line)
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
- '=> Updating your gems... safely ' + current_spinner_state
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
@@ -1,3 +1,3 @@
1
1
  module SafeUpdate
2
- VERSION = '0.4.1'
2
+ VERSION = '0.5.0'
3
3
  end
@@ -23,4 +23,5 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency "rspec", "~> 3.0"
24
24
 
25
25
  spec.add_runtime_dependency 'curses', '~> 1.0.1'
26
+ spec.add_runtime_dependency 'colorize'
26
27
  end
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.1
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-19 00:00:00.000000000 Z
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