tty-progressbar 0.15.0 → 0.18.1

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.
Files changed (104) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +84 -21
  3. data/LICENSE.txt +1 -1
  4. data/README.md +495 -125
  5. data/lib/tty-progressbar.rb +2 -2
  6. data/lib/tty/progressbar.rb +175 -72
  7. data/lib/tty/progressbar/configuration.rb +121 -27
  8. data/lib/tty/progressbar/converter.rb +16 -19
  9. data/lib/tty/progressbar/formats.rb +120 -0
  10. data/lib/tty/progressbar/formatter.rb +33 -38
  11. data/lib/tty/progressbar/formatter/bar.rb +74 -27
  12. data/lib/tty/progressbar/formatter/byte_rate.rb +6 -20
  13. data/lib/tty/progressbar/formatter/current.rb +4 -19
  14. data/lib/tty/progressbar/formatter/current_byte.rb +9 -17
  15. data/lib/tty/progressbar/formatter/elapsed.rb +9 -18
  16. data/lib/tty/progressbar/formatter/estimated.rb +18 -20
  17. data/lib/tty/progressbar/formatter/estimated_time.rb +39 -0
  18. data/lib/tty/progressbar/formatter/mean_byte.rb +6 -20
  19. data/lib/tty/progressbar/formatter/mean_rate.rb +6 -20
  20. data/lib/tty/progressbar/formatter/percent.rb +10 -16
  21. data/lib/tty/progressbar/formatter/rate.rb +5 -19
  22. data/lib/tty/progressbar/formatter/total.rb +10 -16
  23. data/lib/tty/progressbar/formatter/total_byte.rb +14 -18
  24. data/lib/tty/progressbar/formatters.rb +53 -0
  25. data/lib/tty/progressbar/meter.rb +2 -2
  26. data/lib/tty/progressbar/multi.rb +61 -21
  27. data/lib/tty/progressbar/pipeline.rb +13 -6
  28. data/lib/tty/progressbar/timer.rb +89 -0
  29. data/lib/tty/progressbar/version.rb +3 -1
  30. metadata +56 -164
  31. data/.codeclimate.yml +0 -11
  32. data/.gitignore +0 -14
  33. data/.rspec +0 -3
  34. data/.travis.yml +0 -26
  35. data/CODE_OF_CONDUCT.md +0 -74
  36. data/Gemfile +0 -14
  37. data/Rakefile +0 -8
  38. data/appveyor.yml +0 -23
  39. data/examples/color.rb +0 -18
  40. data/examples/failure.rb +0 -12
  41. data/examples/iterator.rb +0 -5
  42. data/examples/lazy.rb +0 -6
  43. data/examples/multi/main_bar.rb +0 -13
  44. data/examples/multi/simple.rb +0 -13
  45. data/examples/multi/width.rb +0 -13
  46. data/examples/simple.rb +0 -7
  47. data/examples/slow_process.rb +0 -29
  48. data/examples/speed.rb +0 -11
  49. data/examples/threaded.rb +0 -14
  50. data/examples/tokens.rb +0 -12
  51. data/examples/unicode.rb +0 -7
  52. data/spec/spec_helper.rb +0 -51
  53. data/spec/unit/advance_spec.rb +0 -25
  54. data/spec/unit/clear_spec.rb +0 -17
  55. data/spec/unit/complete_spec.rb +0 -16
  56. data/spec/unit/converter/to_bytes_spec.rb +0 -47
  57. data/spec/unit/converter/to_seconds_spec.rb +0 -15
  58. data/spec/unit/converter/to_time_spec.rb +0 -19
  59. data/spec/unit/custom_formatter_spec.rb +0 -26
  60. data/spec/unit/custom_token_spec.rb +0 -14
  61. data/spec/unit/events_spec.rb +0 -33
  62. data/spec/unit/finish_spec.rb +0 -15
  63. data/spec/unit/formatter/bar_spec.rb +0 -16
  64. data/spec/unit/formatter/byte_rate_spec.rb +0 -32
  65. data/spec/unit/formatter/current_byte_spec.rb +0 -16
  66. data/spec/unit/formatter/current_spec.rb +0 -14
  67. data/spec/unit/formatter/elapsed_spec.rb +0 -58
  68. data/spec/unit/formatter/estimated_spec.rb +0 -27
  69. data/spec/unit/formatter/mean_byte_spec.rb +0 -32
  70. data/spec/unit/formatter/mean_rate_spec.rb +0 -31
  71. data/spec/unit/formatter/percent_spec.rb +0 -16
  72. data/spec/unit/formatter/rate_spec.rb +0 -31
  73. data/spec/unit/formatter/total_byte_spec.rb +0 -16
  74. data/spec/unit/formatter/total_spec.rb +0 -16
  75. data/spec/unit/frequency_spec.rb +0 -27
  76. data/spec/unit/head_spec.rb +0 -32
  77. data/spec/unit/hide_cursor_spec.rb +0 -27
  78. data/spec/unit/inspect_spec.rb +0 -11
  79. data/spec/unit/iterate_spec.rb +0 -79
  80. data/spec/unit/log_spec.rb +0 -29
  81. data/spec/unit/meter_spec.rb +0 -70
  82. data/spec/unit/multi/advance_spec.rb +0 -123
  83. data/spec/unit/multi/events_spec.rb +0 -115
  84. data/spec/unit/multi/finish_spec.rb +0 -41
  85. data/spec/unit/multi/line_inset_spec.rb +0 -65
  86. data/spec/unit/multi/register_spec.rb +0 -35
  87. data/spec/unit/multi/reset_spec.rb +0 -28
  88. data/spec/unit/multi/stop_spec.rb +0 -15
  89. data/spec/unit/multi/width_spec.rb +0 -118
  90. data/spec/unit/new_spec.rb +0 -76
  91. data/spec/unit/pipeline_spec.rb +0 -19
  92. data/spec/unit/ratio_spec.rb +0 -31
  93. data/spec/unit/render_spec.rb +0 -25
  94. data/spec/unit/reset_spec.rb +0 -31
  95. data/spec/unit/resize_spec.rb +0 -35
  96. data/spec/unit/set_current_spec.rb +0 -43
  97. data/spec/unit/start_spec.rb +0 -14
  98. data/spec/unit/stop_spec.rb +0 -19
  99. data/spec/unit/update_spec.rb +0 -22
  100. data/spec/unit/width_spec.rb +0 -86
  101. data/tasks/console.rake +0 -9
  102. data/tasks/coverage.rake +0 -9
  103. data/tasks/spec.rake +0 -27
  104. data/tty-progressbar.gemspec +0 -31
@@ -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
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module TTY
2
4
  class ProgressBar
3
- VERSION = '0.15.0'.freeze
5
+ VERSION = "0.18.1"
4
6
  end # ProgressBar
5
7
  end # TTY
metadata CHANGED
@@ -1,154 +1,140 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tty-progressbar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.0
4
+ version: 0.18.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Murach
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-06-24 00:00:00.000000000 Z
11
+ date: 2021-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: tty-cursor
14
+ name: strings-ansi
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.5.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.5.0
26
+ version: '0.2'
27
27
  - !ruby/object:Gem::Dependency
28
- name: tty-screen
28
+ name: tty-cursor
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.6.4
33
+ version: '0.7'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.6.4
40
+ version: '0.7'
41
41
  - !ruby/object:Gem::Dependency
42
- name: unicode-display_width
42
+ name: tty-screen
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.3'
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: '1.3'
54
+ version: '0.8'
55
55
  - !ruby/object:Gem::Dependency
56
- name: bundler
56
+ name: unicode-display_width
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 1.5.0
61
+ version: '1.6'
62
62
  - - "<"
63
63
  - !ruby/object:Gem::Version
64
- version: '2.0'
65
- type: :development
64
+ version: '3.0'
65
+ type: :runtime
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
68
68
  requirements:
69
69
  - - ">="
70
70
  - !ruby/object:Gem::Version
71
- version: 1.5.0
71
+ version: '1.6'
72
72
  - - "<"
73
73
  - !ruby/object:Gem::Version
74
- version: '2.0'
74
+ version: '3.0'
75
75
  - !ruby/object:Gem::Dependency
76
- name: rspec
76
+ name: rake
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
- - - "~>"
79
+ - - ">="
80
80
  - !ruby/object:Gem::Version
81
- version: '3.1'
81
+ version: '0'
82
82
  type: :development
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
- - - "~>"
86
+ - - ">="
87
87
  - !ruby/object:Gem::Version
88
- version: '3.1'
88
+ version: '0'
89
89
  - !ruby/object:Gem::Dependency
90
- name: timecop
90
+ name: rspec
91
91
  requirement: !ruby/object:Gem::Requirement
92
92
  requirements:
93
- - - "~>"
93
+ - - ">="
94
94
  - !ruby/object:Gem::Version
95
- version: 0.9.1
95
+ version: '3.0'
96
96
  type: :development
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
- - - "~>"
100
+ - - ">="
101
101
  - !ruby/object:Gem::Version
102
- version: 0.9.1
102
+ version: '3.0'
103
103
  - !ruby/object:Gem::Dependency
104
- name: rake
104
+ name: timecop
105
105
  requirement: !ruby/object:Gem::Requirement
106
106
  requirements:
107
- - - ">="
107
+ - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: '0'
109
+ version: '0.9'
110
110
  type: :development
111
111
  prerelease: false
112
112
  version_requirements: !ruby/object:Gem::Requirement
113
113
  requirements:
114
- - - ">="
114
+ - - "~>"
115
115
  - !ruby/object:Gem::Version
116
- version: '0'
117
- 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.
118
121
  email:
119
- - ''
122
+ - piotr@piotrmurach.com
120
123
  executables: []
121
124
  extensions: []
122
- extra_rdoc_files: []
125
+ extra_rdoc_files:
126
+ - README.md
127
+ - CHANGELOG.md
128
+ - LICENSE.txt
123
129
  files:
124
- - ".codeclimate.yml"
125
- - ".gitignore"
126
- - ".rspec"
127
- - ".travis.yml"
128
130
  - CHANGELOG.md
129
- - CODE_OF_CONDUCT.md
130
- - Gemfile
131
131
  - LICENSE.txt
132
132
  - README.md
133
- - Rakefile
134
- - appveyor.yml
135
- - examples/color.rb
136
- - examples/failure.rb
137
- - examples/iterator.rb
138
- - examples/lazy.rb
139
- - examples/multi/main_bar.rb
140
- - examples/multi/simple.rb
141
- - examples/multi/width.rb
142
- - examples/simple.rb
143
- - examples/slow_process.rb
144
- - examples/speed.rb
145
- - examples/threaded.rb
146
- - examples/tokens.rb
147
- - examples/unicode.rb
148
133
  - lib/tty-progressbar.rb
149
134
  - lib/tty/progressbar.rb
150
135
  - lib/tty/progressbar/configuration.rb
151
136
  - lib/tty/progressbar/converter.rb
137
+ - lib/tty/progressbar/formats.rb
152
138
  - lib/tty/progressbar/formatter.rb
153
139
  - lib/tty/progressbar/formatter/bar.rb
154
140
  - lib/tty/progressbar/formatter/byte_rate.rb
@@ -156,73 +142,29 @@ files:
156
142
  - lib/tty/progressbar/formatter/current_byte.rb
157
143
  - lib/tty/progressbar/formatter/elapsed.rb
158
144
  - lib/tty/progressbar/formatter/estimated.rb
145
+ - lib/tty/progressbar/formatter/estimated_time.rb
159
146
  - lib/tty/progressbar/formatter/mean_byte.rb
160
147
  - lib/tty/progressbar/formatter/mean_rate.rb
161
148
  - lib/tty/progressbar/formatter/percent.rb
162
149
  - lib/tty/progressbar/formatter/rate.rb
163
150
  - lib/tty/progressbar/formatter/total.rb
164
151
  - lib/tty/progressbar/formatter/total_byte.rb
152
+ - lib/tty/progressbar/formatters.rb
165
153
  - lib/tty/progressbar/meter.rb
166
154
  - lib/tty/progressbar/multi.rb
167
155
  - lib/tty/progressbar/pipeline.rb
156
+ - lib/tty/progressbar/timer.rb
168
157
  - lib/tty/progressbar/version.rb
169
- - spec/spec_helper.rb
170
- - spec/unit/advance_spec.rb
171
- - spec/unit/clear_spec.rb
172
- - spec/unit/complete_spec.rb
173
- - spec/unit/converter/to_bytes_spec.rb
174
- - spec/unit/converter/to_seconds_spec.rb
175
- - spec/unit/converter/to_time_spec.rb
176
- - spec/unit/custom_formatter_spec.rb
177
- - spec/unit/custom_token_spec.rb
178
- - spec/unit/events_spec.rb
179
- - spec/unit/finish_spec.rb
180
- - spec/unit/formatter/bar_spec.rb
181
- - spec/unit/formatter/byte_rate_spec.rb
182
- - spec/unit/formatter/current_byte_spec.rb
183
- - spec/unit/formatter/current_spec.rb
184
- - spec/unit/formatter/elapsed_spec.rb
185
- - spec/unit/formatter/estimated_spec.rb
186
- - spec/unit/formatter/mean_byte_spec.rb
187
- - spec/unit/formatter/mean_rate_spec.rb
188
- - spec/unit/formatter/percent_spec.rb
189
- - spec/unit/formatter/rate_spec.rb
190
- - spec/unit/formatter/total_byte_spec.rb
191
- - spec/unit/formatter/total_spec.rb
192
- - spec/unit/frequency_spec.rb
193
- - spec/unit/head_spec.rb
194
- - spec/unit/hide_cursor_spec.rb
195
- - spec/unit/inspect_spec.rb
196
- - spec/unit/iterate_spec.rb
197
- - spec/unit/log_spec.rb
198
- - spec/unit/meter_spec.rb
199
- - spec/unit/multi/advance_spec.rb
200
- - spec/unit/multi/events_spec.rb
201
- - spec/unit/multi/finish_spec.rb
202
- - spec/unit/multi/line_inset_spec.rb
203
- - spec/unit/multi/register_spec.rb
204
- - spec/unit/multi/reset_spec.rb
205
- - spec/unit/multi/stop_spec.rb
206
- - spec/unit/multi/width_spec.rb
207
- - spec/unit/new_spec.rb
208
- - spec/unit/pipeline_spec.rb
209
- - spec/unit/ratio_spec.rb
210
- - spec/unit/render_spec.rb
211
- - spec/unit/reset_spec.rb
212
- - spec/unit/resize_spec.rb
213
- - spec/unit/set_current_spec.rb
214
- - spec/unit/start_spec.rb
215
- - spec/unit/stop_spec.rb
216
- - spec/unit/update_spec.rb
217
- - spec/unit/width_spec.rb
218
- - tasks/console.rake
219
- - tasks/coverage.rake
220
- - tasks/spec.rake
221
- - tty-progressbar.gemspec
222
- homepage: https://piotrmurach.github.io/tty/
158
+ homepage: https://ttytoolkit.org
223
159
  licenses:
224
160
  - MIT
225
- 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
226
168
  post_install_message:
227
169
  rdoc_options: []
228
170
  require_paths:
@@ -238,58 +180,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
238
180
  - !ruby/object:Gem::Version
239
181
  version: '0'
240
182
  requirements: []
241
- rubyforge_project:
242
- rubygems_version: 2.5.1
183
+ rubygems_version: 3.1.2
243
184
  signing_key:
244
185
  specification_version: 4
245
- summary: A flexible progress bars drawing in terminal emulators.
246
- test_files:
247
- - spec/spec_helper.rb
248
- - spec/unit/advance_spec.rb
249
- - spec/unit/clear_spec.rb
250
- - spec/unit/complete_spec.rb
251
- - spec/unit/converter/to_bytes_spec.rb
252
- - spec/unit/converter/to_seconds_spec.rb
253
- - spec/unit/converter/to_time_spec.rb
254
- - spec/unit/custom_formatter_spec.rb
255
- - spec/unit/custom_token_spec.rb
256
- - spec/unit/events_spec.rb
257
- - spec/unit/finish_spec.rb
258
- - spec/unit/formatter/bar_spec.rb
259
- - spec/unit/formatter/byte_rate_spec.rb
260
- - spec/unit/formatter/current_byte_spec.rb
261
- - spec/unit/formatter/current_spec.rb
262
- - spec/unit/formatter/elapsed_spec.rb
263
- - spec/unit/formatter/estimated_spec.rb
264
- - spec/unit/formatter/mean_byte_spec.rb
265
- - spec/unit/formatter/mean_rate_spec.rb
266
- - spec/unit/formatter/percent_spec.rb
267
- - spec/unit/formatter/rate_spec.rb
268
- - spec/unit/formatter/total_byte_spec.rb
269
- - spec/unit/formatter/total_spec.rb
270
- - spec/unit/frequency_spec.rb
271
- - spec/unit/head_spec.rb
272
- - spec/unit/hide_cursor_spec.rb
273
- - spec/unit/inspect_spec.rb
274
- - spec/unit/iterate_spec.rb
275
- - spec/unit/log_spec.rb
276
- - spec/unit/meter_spec.rb
277
- - spec/unit/multi/advance_spec.rb
278
- - spec/unit/multi/events_spec.rb
279
- - spec/unit/multi/finish_spec.rb
280
- - spec/unit/multi/line_inset_spec.rb
281
- - spec/unit/multi/register_spec.rb
282
- - spec/unit/multi/reset_spec.rb
283
- - spec/unit/multi/stop_spec.rb
284
- - spec/unit/multi/width_spec.rb
285
- - spec/unit/new_spec.rb
286
- - spec/unit/pipeline_spec.rb
287
- - spec/unit/ratio_spec.rb
288
- - spec/unit/render_spec.rb
289
- - spec/unit/reset_spec.rb
290
- - spec/unit/resize_spec.rb
291
- - spec/unit/set_current_spec.rb
292
- - spec/unit/start_spec.rb
293
- - spec/unit/stop_spec.rb
294
- - spec/unit/update_spec.rb
295
- - spec/unit/width_spec.rb
186
+ summary: A flexible and extensible progress bar for terminal applications.
187
+ test_files: []
@@ -1,11 +0,0 @@
1
- ---
2
- engines:
3
- fixme:
4
- enabled: true
5
- ratings:
6
- paths:
7
- - lib/**/*.rb
8
- exclude_paths:
9
- - spec/**/*
10
- - examples/**/*
11
- - tasks/**/*