tty-progressbar 0.17.0 → 0.18.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/CHANGELOG.md +32 -0
- data/LICENSE.txt +1 -1
- data/README.md +492 -126
- data/lib/tty-progressbar.rb +2 -2
- data/lib/tty/progressbar.rb +168 -68
- data/lib/tty/progressbar/configuration.rb +121 -27
- data/lib/tty/progressbar/converter.rb +16 -19
- data/lib/tty/progressbar/formats.rb +120 -0
- data/lib/tty/progressbar/formatter.rb +33 -38
- data/lib/tty/progressbar/formatter/bar.rb +74 -27
- data/lib/tty/progressbar/formatter/byte_rate.rb +6 -20
- data/lib/tty/progressbar/formatter/current.rb +4 -19
- data/lib/tty/progressbar/formatter/current_byte.rb +9 -17
- data/lib/tty/progressbar/formatter/elapsed.rb +9 -18
- data/lib/tty/progressbar/formatter/estimated.rb +14 -18
- data/lib/tty/progressbar/formatter/estimated_time.rb +37 -0
- data/lib/tty/progressbar/formatter/mean_byte.rb +6 -20
- data/lib/tty/progressbar/formatter/mean_rate.rb +6 -20
- data/lib/tty/progressbar/formatter/percent.rb +10 -16
- data/lib/tty/progressbar/formatter/rate.rb +5 -19
- data/lib/tty/progressbar/formatter/total.rb +10 -16
- data/lib/tty/progressbar/formatter/total_byte.rb +14 -18
- data/lib/tty/progressbar/formatters.rb +53 -0
- data/lib/tty/progressbar/meter.rb +2 -2
- data/lib/tty/progressbar/multi.rb +61 -21
- data/lib/tty/progressbar/pipeline.rb +13 -6
- data/lib/tty/progressbar/timer.rb +89 -0
- data/lib/tty/progressbar/version.rb +1 -1
- metadata +44 -103
- data/Rakefile +0 -8
- data/examples/color.rb +0 -18
- data/examples/failure.rb +0 -12
- data/examples/iterator.rb +0 -5
- data/examples/lazy.rb +0 -6
- data/examples/multi/main_bar.rb +0 -13
- data/examples/multi/simple.rb +0 -13
- data/examples/multi/width.rb +0 -13
- data/examples/simple.rb +0 -7
- data/examples/slow_process.rb +0 -29
- data/examples/speed.rb +0 -11
- data/examples/threaded.rb +0 -14
- data/examples/tokens.rb +0 -12
- data/examples/unicode.rb +0 -7
- data/spec/spec_helper.rb +0 -53
- data/spec/unit/advance_spec.rb +0 -25
- data/spec/unit/clear_spec.rb +0 -17
- data/spec/unit/complete_spec.rb +0 -16
- data/spec/unit/converter/to_bytes_spec.rb +0 -47
- data/spec/unit/converter/to_seconds_spec.rb +0 -15
- data/spec/unit/converter/to_time_spec.rb +0 -19
- data/spec/unit/custom_formatter_spec.rb +0 -26
- data/spec/unit/custom_token_spec.rb +0 -14
- data/spec/unit/events_spec.rb +0 -33
- data/spec/unit/finish_spec.rb +0 -15
- data/spec/unit/formatter/bar_spec.rb +0 -33
- data/spec/unit/formatter/byte_rate_spec.rb +0 -32
- data/spec/unit/formatter/current_byte_spec.rb +0 -16
- data/spec/unit/formatter/current_spec.rb +0 -14
- data/spec/unit/formatter/elapsed_spec.rb +0 -58
- data/spec/unit/formatter/estimated_spec.rb +0 -27
- data/spec/unit/formatter/mean_byte_spec.rb +0 -32
- data/spec/unit/formatter/mean_rate_spec.rb +0 -31
- data/spec/unit/formatter/percent_spec.rb +0 -16
- data/spec/unit/formatter/rate_spec.rb +0 -31
- data/spec/unit/formatter/total_byte_spec.rb +0 -16
- data/spec/unit/formatter/total_spec.rb +0 -16
- data/spec/unit/frequency_spec.rb +0 -27
- data/spec/unit/head_spec.rb +0 -32
- data/spec/unit/hide_cursor_spec.rb +0 -27
- data/spec/unit/inspect_spec.rb +0 -11
- data/spec/unit/iterate_spec.rb +0 -79
- data/spec/unit/log_spec.rb +0 -29
- data/spec/unit/meter_spec.rb +0 -70
- data/spec/unit/multi/advance_spec.rb +0 -123
- data/spec/unit/multi/events_spec.rb +0 -115
- data/spec/unit/multi/finish_spec.rb +0 -41
- data/spec/unit/multi/line_inset_spec.rb +0 -65
- data/spec/unit/multi/register_spec.rb +0 -35
- data/spec/unit/multi/reset_spec.rb +0 -28
- data/spec/unit/multi/stop_spec.rb +0 -15
- data/spec/unit/multi/width_spec.rb +0 -118
- data/spec/unit/new_spec.rb +0 -76
- data/spec/unit/pipeline_spec.rb +0 -19
- data/spec/unit/ratio_spec.rb +0 -31
- data/spec/unit/render_spec.rb +0 -25
- data/spec/unit/reset_spec.rb +0 -31
- data/spec/unit/resize_spec.rb +0 -35
- data/spec/unit/set_current_spec.rb +0 -43
- data/spec/unit/start_spec.rb +0 -14
- data/spec/unit/stop_spec.rb +0 -19
- data/spec/unit/update_spec.rb +0 -22
- data/spec/unit/width_spec.rb +0 -86
- data/tasks/console.rake +0 -9
- data/tasks/coverage.rake +0 -9
- data/tasks/spec.rake +0 -27
- data/tty-progressbar.gemspec +0 -32
@@ -0,0 +1,89 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module TTY
|
4
|
+
class ProgressBar
|
5
|
+
# Used to measure the elapsed time for multiple time intervals
|
6
|
+
#
|
7
|
+
# @api private
|
8
|
+
class Timer
|
9
|
+
attr_reader :start_time
|
10
|
+
|
11
|
+
# Create Timer
|
12
|
+
#
|
13
|
+
# @api private
|
14
|
+
def initialize
|
15
|
+
reset
|
16
|
+
end
|
17
|
+
|
18
|
+
# Reset the start time to nil and elapsed time to zero
|
19
|
+
#
|
20
|
+
# @api public
|
21
|
+
def reset
|
22
|
+
@running = false
|
23
|
+
@offset = 0
|
24
|
+
@start_time = nil
|
25
|
+
end
|
26
|
+
|
27
|
+
# Check whether or not the timer is running
|
28
|
+
#
|
29
|
+
# @return [Boolean]
|
30
|
+
#
|
31
|
+
# @api public
|
32
|
+
def running?
|
33
|
+
@running
|
34
|
+
end
|
35
|
+
|
36
|
+
# Total elapsed time
|
37
|
+
#
|
38
|
+
# @return [Float]
|
39
|
+
# the elapsed time in seconds
|
40
|
+
#
|
41
|
+
# @api public
|
42
|
+
def elapsed_time
|
43
|
+
if running?
|
44
|
+
elapsed_until_now + @offset
|
45
|
+
else
|
46
|
+
@offset
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
# Measure current time interval
|
51
|
+
#
|
52
|
+
# @api public
|
53
|
+
def elapsed_until_now
|
54
|
+
time_so_far = Time.now - @start_time
|
55
|
+
# protect against negative time drifting
|
56
|
+
time_so_far > 0 ? time_so_far : 0
|
57
|
+
end
|
58
|
+
|
59
|
+
# Start measuring elapsed time for a new interval
|
60
|
+
#
|
61
|
+
# @return [Time]
|
62
|
+
# return the start time
|
63
|
+
#
|
64
|
+
# @api public
|
65
|
+
def start
|
66
|
+
return @start_time if running?
|
67
|
+
|
68
|
+
@running = true
|
69
|
+
@start_time = Time.now
|
70
|
+
end
|
71
|
+
|
72
|
+
# Stop measuring elapsed time for the current interval
|
73
|
+
#
|
74
|
+
# @return [Float]
|
75
|
+
# return elapsed time for the stopped interval
|
76
|
+
#
|
77
|
+
# @api public
|
78
|
+
def stop
|
79
|
+
return 0 unless running?
|
80
|
+
|
81
|
+
interval = elapsed_until_now
|
82
|
+
@offset += interval
|
83
|
+
@running = false
|
84
|
+
@start_time = nil
|
85
|
+
interval
|
86
|
+
end
|
87
|
+
end # Timer
|
88
|
+
end # ProgressBar
|
89
|
+
end # TTY
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tty-progressbar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.18.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Piotr Murach
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-01-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: strings-ansi
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: '0.2'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: '0.2'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: tty-cursor
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,54 +44,60 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '0.
|
47
|
+
version: '0.8'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '0.
|
54
|
+
version: '0.8'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: unicode-display_width
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '1.6'
|
62
|
+
- - "<"
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: '3.0'
|
62
65
|
type: :runtime
|
63
66
|
prerelease: false
|
64
67
|
version_requirements: !ruby/object:Gem::Requirement
|
65
68
|
requirements:
|
66
|
-
- - "
|
69
|
+
- - ">="
|
67
70
|
- !ruby/object:Gem::Version
|
68
71
|
version: '1.6'
|
72
|
+
- - "<"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '3.0'
|
69
75
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
76
|
+
name: rake
|
71
77
|
requirement: !ruby/object:Gem::Requirement
|
72
78
|
requirements:
|
73
79
|
- - ">="
|
74
80
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
81
|
+
version: '0'
|
76
82
|
type: :development
|
77
83
|
prerelease: false
|
78
84
|
version_requirements: !ruby/object:Gem::Requirement
|
79
85
|
requirements:
|
80
86
|
- - ">="
|
81
87
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
88
|
+
version: '0'
|
83
89
|
- !ruby/object:Gem::Dependency
|
84
90
|
name: rspec
|
85
91
|
requirement: !ruby/object:Gem::Requirement
|
86
92
|
requirements:
|
87
|
-
- - "
|
93
|
+
- - ">="
|
88
94
|
- !ruby/object:Gem::Version
|
89
95
|
version: '3.0'
|
90
96
|
type: :development
|
91
97
|
prerelease: false
|
92
98
|
version_requirements: !ruby/object:Gem::Requirement
|
93
99
|
requirements:
|
94
|
-
- - "
|
100
|
+
- - ">="
|
95
101
|
- !ruby/object:Gem::Version
|
96
102
|
version: '3.0'
|
97
103
|
- !ruby/object:Gem::Dependency
|
@@ -100,56 +106,35 @@ dependencies:
|
|
100
106
|
requirements:
|
101
107
|
- - "~>"
|
102
108
|
- !ruby/object:Gem::Version
|
103
|
-
version: 0.9
|
109
|
+
version: '0.9'
|
104
110
|
type: :development
|
105
111
|
prerelease: false
|
106
112
|
version_requirements: !ruby/object:Gem::Requirement
|
107
113
|
requirements:
|
108
114
|
- - "~>"
|
109
115
|
- !ruby/object:Gem::Version
|
110
|
-
version: 0.9
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
- - ">="
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - ">="
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0'
|
125
|
-
description: A flexible progress bars drawing in terminal emulators.
|
116
|
+
version: '0.9'
|
117
|
+
description: Display a single or multiple progress bars in the terminal. A progress
|
118
|
+
bar can show determinate or indeterminate progress that can be paused and resumed
|
119
|
+
at any time. A bar format supports many tokens for common information display like
|
120
|
+
elapsed time, estimated time to completion, mean rate and more.
|
126
121
|
email:
|
127
|
-
-
|
122
|
+
- piotr@piotrmurach.com
|
128
123
|
executables: []
|
129
124
|
extensions: []
|
130
|
-
extra_rdoc_files:
|
125
|
+
extra_rdoc_files:
|
126
|
+
- README.md
|
127
|
+
- CHANGELOG.md
|
128
|
+
- LICENSE.txt
|
131
129
|
files:
|
132
130
|
- CHANGELOG.md
|
133
131
|
- LICENSE.txt
|
134
132
|
- README.md
|
135
|
-
- Rakefile
|
136
|
-
- examples/color.rb
|
137
|
-
- examples/failure.rb
|
138
|
-
- examples/iterator.rb
|
139
|
-
- examples/lazy.rb
|
140
|
-
- examples/multi/main_bar.rb
|
141
|
-
- examples/multi/simple.rb
|
142
|
-
- examples/multi/width.rb
|
143
|
-
- examples/simple.rb
|
144
|
-
- examples/slow_process.rb
|
145
|
-
- examples/speed.rb
|
146
|
-
- examples/threaded.rb
|
147
|
-
- examples/tokens.rb
|
148
|
-
- examples/unicode.rb
|
149
133
|
- lib/tty-progressbar.rb
|
150
134
|
- lib/tty/progressbar.rb
|
151
135
|
- lib/tty/progressbar/configuration.rb
|
152
136
|
- lib/tty/progressbar/converter.rb
|
137
|
+
- lib/tty/progressbar/formats.rb
|
153
138
|
- lib/tty/progressbar/formatter.rb
|
154
139
|
- lib/tty/progressbar/formatter/bar.rb
|
155
140
|
- lib/tty/progressbar/formatter/byte_rate.rb
|
@@ -157,73 +142,29 @@ files:
|
|
157
142
|
- lib/tty/progressbar/formatter/current_byte.rb
|
158
143
|
- lib/tty/progressbar/formatter/elapsed.rb
|
159
144
|
- lib/tty/progressbar/formatter/estimated.rb
|
145
|
+
- lib/tty/progressbar/formatter/estimated_time.rb
|
160
146
|
- lib/tty/progressbar/formatter/mean_byte.rb
|
161
147
|
- lib/tty/progressbar/formatter/mean_rate.rb
|
162
148
|
- lib/tty/progressbar/formatter/percent.rb
|
163
149
|
- lib/tty/progressbar/formatter/rate.rb
|
164
150
|
- lib/tty/progressbar/formatter/total.rb
|
165
151
|
- lib/tty/progressbar/formatter/total_byte.rb
|
152
|
+
- lib/tty/progressbar/formatters.rb
|
166
153
|
- lib/tty/progressbar/meter.rb
|
167
154
|
- lib/tty/progressbar/multi.rb
|
168
155
|
- lib/tty/progressbar/pipeline.rb
|
156
|
+
- lib/tty/progressbar/timer.rb
|
169
157
|
- lib/tty/progressbar/version.rb
|
170
|
-
|
171
|
-
- spec/unit/advance_spec.rb
|
172
|
-
- spec/unit/clear_spec.rb
|
173
|
-
- spec/unit/complete_spec.rb
|
174
|
-
- spec/unit/converter/to_bytes_spec.rb
|
175
|
-
- spec/unit/converter/to_seconds_spec.rb
|
176
|
-
- spec/unit/converter/to_time_spec.rb
|
177
|
-
- spec/unit/custom_formatter_spec.rb
|
178
|
-
- spec/unit/custom_token_spec.rb
|
179
|
-
- spec/unit/events_spec.rb
|
180
|
-
- spec/unit/finish_spec.rb
|
181
|
-
- spec/unit/formatter/bar_spec.rb
|
182
|
-
- spec/unit/formatter/byte_rate_spec.rb
|
183
|
-
- spec/unit/formatter/current_byte_spec.rb
|
184
|
-
- spec/unit/formatter/current_spec.rb
|
185
|
-
- spec/unit/formatter/elapsed_spec.rb
|
186
|
-
- spec/unit/formatter/estimated_spec.rb
|
187
|
-
- spec/unit/formatter/mean_byte_spec.rb
|
188
|
-
- spec/unit/formatter/mean_rate_spec.rb
|
189
|
-
- spec/unit/formatter/percent_spec.rb
|
190
|
-
- spec/unit/formatter/rate_spec.rb
|
191
|
-
- spec/unit/formatter/total_byte_spec.rb
|
192
|
-
- spec/unit/formatter/total_spec.rb
|
193
|
-
- spec/unit/frequency_spec.rb
|
194
|
-
- spec/unit/head_spec.rb
|
195
|
-
- spec/unit/hide_cursor_spec.rb
|
196
|
-
- spec/unit/inspect_spec.rb
|
197
|
-
- spec/unit/iterate_spec.rb
|
198
|
-
- spec/unit/log_spec.rb
|
199
|
-
- spec/unit/meter_spec.rb
|
200
|
-
- spec/unit/multi/advance_spec.rb
|
201
|
-
- spec/unit/multi/events_spec.rb
|
202
|
-
- spec/unit/multi/finish_spec.rb
|
203
|
-
- spec/unit/multi/line_inset_spec.rb
|
204
|
-
- spec/unit/multi/register_spec.rb
|
205
|
-
- spec/unit/multi/reset_spec.rb
|
206
|
-
- spec/unit/multi/stop_spec.rb
|
207
|
-
- spec/unit/multi/width_spec.rb
|
208
|
-
- spec/unit/new_spec.rb
|
209
|
-
- spec/unit/pipeline_spec.rb
|
210
|
-
- spec/unit/ratio_spec.rb
|
211
|
-
- spec/unit/render_spec.rb
|
212
|
-
- spec/unit/reset_spec.rb
|
213
|
-
- spec/unit/resize_spec.rb
|
214
|
-
- spec/unit/set_current_spec.rb
|
215
|
-
- spec/unit/start_spec.rb
|
216
|
-
- spec/unit/stop_spec.rb
|
217
|
-
- spec/unit/update_spec.rb
|
218
|
-
- spec/unit/width_spec.rb
|
219
|
-
- tasks/console.rake
|
220
|
-
- tasks/coverage.rake
|
221
|
-
- tasks/spec.rake
|
222
|
-
- tty-progressbar.gemspec
|
223
|
-
homepage: https://piotrmurach.github.io/tty/
|
158
|
+
homepage: https://ttytoolkit.org
|
224
159
|
licenses:
|
225
160
|
- MIT
|
226
|
-
metadata:
|
161
|
+
metadata:
|
162
|
+
allowed_push_host: https://rubygems.org
|
163
|
+
bug_tracker_uri: https://github.com/piotrmurach/tty-progressbar/issues
|
164
|
+
changelog_uri: https://github.com/piotrmurach/tty-progressbar/blob/master/CHANGELOG.md
|
165
|
+
documentation_uri: https://www.rubydoc.info/gems/tty-progressbar
|
166
|
+
homepage_uri: https://ttytoolkit.org
|
167
|
+
source_code_uri: https://github.com/piotrmurach/tty-progressbar
|
227
168
|
post_install_message:
|
228
169
|
rdoc_options: []
|
229
170
|
require_paths:
|
@@ -239,8 +180,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
239
180
|
- !ruby/object:Gem::Version
|
240
181
|
version: '0'
|
241
182
|
requirements: []
|
242
|
-
rubygems_version: 3.
|
183
|
+
rubygems_version: 3.1.2
|
243
184
|
signing_key:
|
244
185
|
specification_version: 4
|
245
|
-
summary: A flexible progress
|
186
|
+
summary: A flexible and extensible progress bar for terminal applications.
|
246
187
|
test_files: []
|
data/Rakefile
DELETED
data/examples/color.rb
DELETED
@@ -1,18 +0,0 @@
|
|
1
|
-
require 'pastel'
|
2
|
-
|
3
|
-
require_relative '../lib/tty-progressbar'
|
4
|
-
|
5
|
-
pastel = Pastel.new
|
6
|
-
green = pastel.on_green(" ")
|
7
|
-
red = pastel.on_red(" ")
|
8
|
-
|
9
|
-
bar = TTY::ProgressBar.new("|:bar|",
|
10
|
-
total: 30,
|
11
|
-
complete: green,
|
12
|
-
incomplete: red
|
13
|
-
)
|
14
|
-
|
15
|
-
30.times do
|
16
|
-
sleep(0.1)
|
17
|
-
bar.advance
|
18
|
-
end
|
data/examples/failure.rb
DELETED
data/examples/iterator.rb
DELETED
data/examples/lazy.rb
DELETED
data/examples/multi/main_bar.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
require_relative '../../lib/tty-progressbar'
|
2
|
-
|
3
|
-
bars = TTY::ProgressBar::Multi.new("main [:bar] :percent")
|
4
|
-
|
5
|
-
bar1 = bars.register "foo [:bar] :percent", total: 15
|
6
|
-
bar2 = bars.register "bar [:bar] :percent", total: 15
|
7
|
-
bar3 = bars.register "baz [:bar] :percent", total: 45
|
8
|
-
|
9
|
-
th1 = Thread.new { 15.times { sleep(0.1); bar1.advance } }
|
10
|
-
th2 = Thread.new { 15.times { sleep(0.1); bar2.advance } }
|
11
|
-
th3 = Thread.new { 45.times { sleep(0.1); bar3.advance } }
|
12
|
-
|
13
|
-
[th1, th2, th3].each(&:join)
|
data/examples/multi/simple.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
require_relative '../../lib/tty-progressbar'
|
2
|
-
|
3
|
-
bars = TTY::ProgressBar::Multi.new
|
4
|
-
|
5
|
-
bar1 = bars.register "foo [:bar] :percent", total: 20
|
6
|
-
bar2 = bars.register "bar [:bar] :percent", total: 30
|
7
|
-
bar3 = bars.register "baz [:bar] :percent", total: 10
|
8
|
-
|
9
|
-
th1 = Thread.new { 20.times { sleep(0.2); bar1.advance } }
|
10
|
-
th2 = Thread.new { 30.times { sleep(0.1); bar2.advance } }
|
11
|
-
th3 = Thread.new { 10.times { sleep(0.3); bar3.advance } }
|
12
|
-
|
13
|
-
[th1, th2, th3].each(&:join)
|