tty-progressbar 0.15.0 → 0.18.1

Sign up to get free protection for your applications and to get access to all the features.
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/**/*