progress_bar 1.1.0 → 1.3.3
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 +5 -5
- data/.github/FUNDING.yml +12 -0
- data/.github/workflows/pronto.yml +32 -0
- data/.github/workflows/rspec.yml +27 -0
- data/.gitignore +9 -0
- data/.reek.yml +51 -0
- data/.rubocop.yml +113 -0
- data/Changelog.mkd +25 -0
- data/Gemfile +3 -1
- data/README.mkd +47 -9
- data/Rakefile +5 -3
- data/examples/enumerable.rb +3 -2
- data/examples/printing_messages.rb +22 -0
- data/examples/simple.rb +2 -1
- data/lib/progress_bar.rb +39 -35
- data/lib/progress_bar/core_ext/enumerable_with_progress.rb +7 -4
- data/lib/progress_bar/version.rb +3 -1
- data/lib/progress_bar/with_progress.rb +8 -6
- data/progress_bar.gemspec +12 -8
- data/spec/arguments_spec.rb +16 -19
- data/spec/bar_spec.rb +9 -9
- data/spec/counter_spec.rb +18 -23
- data/spec/elapsed_spec.rb +17 -15
- data/spec/eta_spec.rb +19 -18
- data/spec/percentage_spec.rb +17 -18
- data/spec/print_spec.rb +21 -0
- data/spec/progress_bar_spec.rb +16 -16
- data/spec/rate_spec.rb +24 -24
- data/spec/spec_helper.rb +4 -4
- data/spec/with_progress_spec.rb +18 -12
- metadata +70 -13
data/spec/eta_spec.rb
CHANGED
@@ -1,50 +1,51 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require File.expand_path(File.join(File.dirname(__FILE__), "spec_helper"))
|
4
|
+
|
5
|
+
describe "ProgressBar eta output" do
|
6
|
+
let(:progress_bar) { ProgressBar.new(100, :eta) }
|
2
7
|
|
3
|
-
describe 'ProgressBar eta output' do
|
4
8
|
before do
|
5
9
|
Timecop.freeze Time.utc(2010, 3, 10, 0, 0, 0)
|
6
|
-
|
10
|
+
progress_bar
|
7
11
|
Timecop.freeze Time.utc(2010, 3, 10, 0, 0, 10) # 10 seconds later
|
8
12
|
end
|
9
13
|
|
10
|
-
subject {
|
14
|
+
subject { progress_bar.to_s }
|
11
15
|
|
12
|
-
describe
|
16
|
+
describe "at count=0" do
|
13
17
|
before do
|
14
|
-
|
18
|
+
progress_bar.count = 0
|
15
19
|
end
|
16
20
|
|
17
21
|
it { should == "[00:00]" }
|
18
22
|
end
|
19
23
|
|
20
|
-
describe
|
24
|
+
describe "at count=50" do
|
21
25
|
before do
|
22
|
-
|
26
|
+
progress_bar.count = 50
|
23
27
|
end
|
24
28
|
|
25
29
|
it { should == "[00:10]" }
|
26
30
|
end
|
27
31
|
|
28
|
-
describe
|
32
|
+
describe "at count=100" do
|
29
33
|
before do
|
30
|
-
|
34
|
+
progress_bar.count = 100
|
31
35
|
end
|
32
36
|
|
33
37
|
it { should == "[00:00]" }
|
34
38
|
end
|
35
39
|
|
36
|
-
describe
|
40
|
+
describe "with times over 1 hour" do
|
41
|
+
let(:progress_bar) { ProgressBar.new(42, :eta) }
|
42
|
+
|
37
43
|
before do
|
38
44
|
Timecop.freeze Time.utc(2010, 3, 10, 0, 0, 0)
|
39
|
-
|
40
|
-
@progress_bar.count = 21
|
45
|
+
progress_bar.count = 21
|
41
46
|
Timecop.freeze Time.utc(2010, 3, 10, 2, 0, 0) # 2 hours later
|
42
47
|
end
|
43
48
|
|
44
|
-
it { should ==
|
49
|
+
it { should == "[02:00:00]" }
|
45
50
|
end
|
46
|
-
|
47
51
|
end
|
48
|
-
|
49
|
-
|
50
|
-
|
data/spec/percentage_spec.rb
CHANGED
@@ -1,44 +1,43 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
3
|
+
require File.expand_path(File.join(File.dirname(__FILE__), "spec_helper"))
|
4
|
+
|
5
|
+
describe "ProgressBar percentage output" do
|
6
|
+
let(:progress_bar) { ProgressBar.new(100, :percentage) }
|
7
7
|
|
8
|
-
subject {
|
8
|
+
subject { progress_bar.to_s }
|
9
9
|
|
10
|
-
describe
|
10
|
+
describe "at count=0" do
|
11
11
|
before do
|
12
|
-
|
12
|
+
progress_bar.count = 0
|
13
13
|
end
|
14
14
|
|
15
15
|
it { should == "[ 0%]" }
|
16
16
|
end
|
17
17
|
|
18
|
-
describe
|
18
|
+
describe "at count=50" do
|
19
19
|
before do
|
20
|
-
|
20
|
+
progress_bar.count = 50
|
21
21
|
end
|
22
22
|
|
23
23
|
it { should == "[ 50%]" }
|
24
24
|
end
|
25
25
|
|
26
|
-
describe
|
26
|
+
describe "at count=100" do
|
27
27
|
before do
|
28
|
-
|
28
|
+
progress_bar.count = 100
|
29
29
|
end
|
30
30
|
|
31
31
|
it { should == "[100%]" }
|
32
32
|
end
|
33
33
|
|
34
|
-
describe
|
34
|
+
describe "with a max that is not 100" do
|
35
|
+
let(:progress_bar) { ProgressBar.new(42, :percentage) }
|
36
|
+
|
35
37
|
before do
|
36
|
-
|
37
|
-
@progress_bar.count = 21
|
38
|
+
progress_bar.count = 21
|
38
39
|
end
|
39
40
|
|
40
|
-
it { should ==
|
41
|
+
it { should == "[ 50.00%]" }
|
41
42
|
end
|
42
|
-
|
43
43
|
end
|
44
|
-
|
data/spec/print_spec.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "spec_helper"
|
4
|
+
|
5
|
+
RSpec.describe "ProgressBar print output" do
|
6
|
+
let(:progress_bar) { ProgressBar.new(:counter) }
|
7
|
+
|
8
|
+
before do
|
9
|
+
allow(progress_bar).to receive(:terminal_width).and_return(10)
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should replace the current bar with the text, and continue the bar on the next line" do
|
13
|
+
expect {
|
14
|
+
progress_bar.increment!
|
15
|
+
progress_bar.puts("Hello, world!")
|
16
|
+
}.to output("\r[ 1/100]" \
|
17
|
+
"\r#{' ' * 10}" \
|
18
|
+
"\rHello, world!\n" \
|
19
|
+
"\r[ 1/100]").to_stderr
|
20
|
+
end
|
21
|
+
end
|
data/spec/progress_bar_spec.rb
CHANGED
@@ -1,47 +1,47 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require File.expand_path(File.join(File.dirname(__FILE__), "spec_helper"))
|
4
|
+
|
5
|
+
describe "ProgressBar bar output" do
|
6
|
+
let(:progress_bar) { ProgressBar.new(100) }
|
2
7
|
|
3
|
-
describe 'ProgressBar bar output' do
|
4
8
|
before do
|
5
9
|
Timecop.freeze Time.utc(2010, 3, 10, 0, 0, 0)
|
6
|
-
|
7
|
-
@progress_bar.stub(:terminal_width) { 60 }
|
10
|
+
allow(progress_bar).to receive(:terminal_width).and_return(60)
|
8
11
|
Timecop.freeze Time.utc(2010, 3, 10, 0, 0, 10) # 10 seconds later
|
9
12
|
end
|
10
13
|
|
11
|
-
subject {
|
14
|
+
subject { progress_bar.to_s }
|
12
15
|
|
13
|
-
describe
|
16
|
+
describe "at count=0" do
|
14
17
|
before do
|
15
|
-
|
18
|
+
progress_bar.count = 0
|
16
19
|
end
|
17
20
|
|
18
21
|
it { should == "[ ] [ 0/100] [ 0%] [00:10] [00:00] [ 0.00/s]" }
|
19
22
|
end
|
20
23
|
|
21
|
-
describe
|
24
|
+
describe "at count=50" do
|
22
25
|
before do
|
23
|
-
|
26
|
+
progress_bar.count = 50
|
24
27
|
end
|
25
28
|
|
26
29
|
it { should == "[####### ] [ 50/100] [ 50%] [00:10] [00:10] [ 5.00/s]" }
|
27
30
|
end
|
28
31
|
|
29
|
-
describe
|
32
|
+
describe "at count=100" do
|
30
33
|
before do
|
31
|
-
|
34
|
+
progress_bar.count = 100
|
32
35
|
end
|
33
36
|
|
34
37
|
it { should == "[##############] [100/100] [100%] [00:10] [00:00] [ 10.00/s]" }
|
35
38
|
end
|
36
39
|
|
37
|
-
describe
|
40
|
+
describe "at count=105" do
|
38
41
|
before do
|
39
|
-
|
42
|
+
progress_bar.count = 105
|
40
43
|
end
|
41
44
|
|
42
45
|
it { should == "[##############] [100/100] [100%] [00:10] [00:00] [ 10.00/s]" }
|
43
46
|
end
|
44
|
-
|
45
47
|
end
|
46
|
-
|
47
|
-
|
data/spec/rate_spec.rb
CHANGED
@@ -1,63 +1,63 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require File.expand_path(File.join(File.dirname(__FILE__), "spec_helper"))
|
4
|
+
|
5
|
+
describe "ProgressBar rate output" do
|
6
|
+
let(:progress_bar) { ProgressBar.new(100, :rate) }
|
2
7
|
|
3
|
-
describe 'ProgressBar rate output' do
|
4
8
|
before do
|
5
9
|
Timecop.freeze Time.utc(2010, 3, 10, 0, 0, 0)
|
6
|
-
|
10
|
+
progress_bar
|
7
11
|
Timecop.freeze Time.utc(2010, 3, 10, 0, 0, 10) # 10 seconds later
|
8
12
|
end
|
9
13
|
|
10
|
-
subject {
|
14
|
+
subject { progress_bar.to_s }
|
11
15
|
|
12
|
-
describe
|
16
|
+
describe "at count=0" do
|
13
17
|
before do
|
14
|
-
|
18
|
+
progress_bar.count = 0
|
15
19
|
end
|
16
20
|
|
17
21
|
it { should == "[ 0.00/s]" }
|
18
22
|
end
|
19
23
|
|
20
|
-
describe
|
24
|
+
describe "at count=50" do
|
21
25
|
before do
|
22
|
-
|
26
|
+
progress_bar.count = 50
|
23
27
|
end
|
24
28
|
|
25
29
|
it { should == "[ 5.00/s]" }
|
26
30
|
end
|
27
31
|
|
28
|
-
describe
|
32
|
+
describe "at count=100" do
|
29
33
|
before do
|
30
|
-
|
34
|
+
progress_bar.count = 100
|
31
35
|
end
|
32
36
|
|
33
37
|
it { should == "[ 10.00/s]" }
|
34
38
|
end
|
35
39
|
|
36
|
-
describe
|
40
|
+
describe "with a shorter max" do
|
41
|
+
let(:progress_bar) { ProgressBar.new(42, :rate) }
|
42
|
+
|
37
43
|
before do
|
38
44
|
Timecop.freeze Time.utc(2010, 3, 10, 0, 0, 0)
|
39
|
-
|
40
|
-
@progress_bar.count = 21
|
45
|
+
progress_bar.count = 21
|
41
46
|
Timecop.freeze Time.utc(2010, 3, 10, 0, 0, 10) # 10 seconds later
|
42
47
|
end
|
43
48
|
|
44
|
-
it { should ==
|
49
|
+
it { should == "[ 2.10/s]" }
|
45
50
|
end
|
46
51
|
|
47
|
-
describe
|
52
|
+
describe "with a longer max" do
|
53
|
+
let(:progress_bar) { ProgressBar.new(4242, :rate) }
|
54
|
+
|
48
55
|
before do
|
49
56
|
Timecop.freeze Time.utc(2010, 3, 10, 0, 0, 0)
|
50
|
-
|
51
|
-
@progress_bar.count = 21
|
57
|
+
progress_bar.count = 21
|
52
58
|
Timecop.freeze Time.utc(2010, 3, 10, 0, 0, 10) # 10 seconds later
|
53
59
|
end
|
54
60
|
|
55
|
-
it { should ==
|
61
|
+
it { should == "[ 2.10/s]" }
|
56
62
|
end
|
57
|
-
|
58
63
|
end
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
data/spec/spec_helper.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
|
2
|
-
require File.expand_path(File.join(File.dirname(__FILE__),
|
3
|
+
require File.expand_path(File.join(File.dirname(__FILE__), "..", "lib/progress_bar"))
|
3
4
|
|
4
|
-
require
|
5
|
-
require
|
5
|
+
require "rspec"
|
6
|
+
require "timecop"
|
6
7
|
|
7
8
|
RSpec.configure do |cfg|
|
8
9
|
cfg.after do
|
9
10
|
Timecop.return
|
10
11
|
end
|
11
12
|
end
|
12
|
-
|
data/spec/with_progress_spec.rb
CHANGED
@@ -1,13 +1,17 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require File.expand_path(File.join(File.dirname(__FILE__), "spec_helper"))
|
2
4
|
|
3
5
|
describe ProgressBar::WithProgress do
|
4
|
-
context
|
5
|
-
let!(:bar){ProgressBar.new}
|
6
|
+
context "with block" do
|
7
|
+
let!(:bar){ ProgressBar.new }
|
8
|
+
|
6
9
|
before{
|
7
|
-
Range.
|
8
|
-
allow(ProgressBar).to receive(:new){|max| bar.max = max; bar}
|
10
|
+
Range.include ProgressBar::WithProgress
|
11
|
+
allow(ProgressBar).to receive(:new){ |max| bar.max = max; bar }
|
9
12
|
}
|
10
|
-
|
13
|
+
|
14
|
+
it "should set max and increment on each iteration" do
|
11
15
|
(1..20).each_with_progress do |i|
|
12
16
|
break if i > 10
|
13
17
|
end
|
@@ -16,19 +20,21 @@ describe ProgressBar::WithProgress do
|
|
16
20
|
end
|
17
21
|
end
|
18
22
|
|
19
|
-
context
|
20
|
-
let!(:bar){ProgressBar.new}
|
23
|
+
context "without block" do
|
24
|
+
let!(:bar){ ProgressBar.new }
|
25
|
+
|
21
26
|
before{
|
22
|
-
Range.
|
23
|
-
allow(ProgressBar).to receive(:new){|max| bar.max = max; bar}
|
27
|
+
Range.include ProgressBar::WithProgress
|
28
|
+
allow(ProgressBar).to receive(:new){ |max| bar.max = max; bar }
|
24
29
|
}
|
25
|
-
|
30
|
+
|
31
|
+
it "should give Enumerator" do
|
26
32
|
enum = (1..20).each_with_progress
|
27
33
|
expect(enum).to be_kind_of(Enumerator)
|
28
34
|
expect(bar.max).to eq 20
|
29
35
|
expect(bar.count).to eq 0
|
30
36
|
|
31
|
-
res = enum.map{|i| i + 1}
|
37
|
+
res = enum.map{ |i| i + 1 }
|
32
38
|
expect(res).to eq (2..21).to_a
|
33
39
|
expect(bar.count).to eq 20
|
34
40
|
end
|
metadata
CHANGED
@@ -1,15 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: progress_bar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul Sadauskas
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-11-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: highline
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.6'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '3'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.6'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '3'
|
13
33
|
- !ruby/object:Gem::Dependency
|
14
34
|
name: options
|
15
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -25,21 +45,21 @@ dependencies:
|
|
25
45
|
- !ruby/object:Gem::Version
|
26
46
|
version: 2.3.0
|
27
47
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
48
|
+
name: rake
|
29
49
|
requirement: !ruby/object:Gem::Requirement
|
30
50
|
requirements:
|
31
|
-
- - "
|
51
|
+
- - ">="
|
32
52
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
34
|
-
type: :
|
53
|
+
version: '0'
|
54
|
+
type: :development
|
35
55
|
prerelease: false
|
36
56
|
version_requirements: !ruby/object:Gem::Requirement
|
37
57
|
requirements:
|
38
|
-
- - "
|
58
|
+
- - ">="
|
39
59
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
60
|
+
version: '0'
|
41
61
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
62
|
+
name: reek
|
43
63
|
requirement: !ruby/object:Gem::Requirement
|
44
64
|
requirements:
|
45
65
|
- - ">="
|
@@ -66,6 +86,34 @@ dependencies:
|
|
66
86
|
- - ">="
|
67
87
|
- !ruby/object:Gem::Version
|
68
88
|
version: '0'
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: rubocop
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
type: :development
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: rubocop-rspec
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
106
|
+
requirements:
|
107
|
+
- - ">="
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
type: :development
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: !ruby/object:Gem::Requirement
|
113
|
+
requirements:
|
114
|
+
- - ">="
|
115
|
+
- !ruby/object:Gem::Version
|
116
|
+
version: '0'
|
69
117
|
- !ruby/object:Gem::Dependency
|
70
118
|
name: timecop
|
71
119
|
requirement: !ruby/object:Gem::Requirement
|
@@ -88,14 +136,21 @@ executables: []
|
|
88
136
|
extensions: []
|
89
137
|
extra_rdoc_files: []
|
90
138
|
files:
|
139
|
+
- ".github/FUNDING.yml"
|
140
|
+
- ".github/workflows/pronto.yml"
|
141
|
+
- ".github/workflows/rspec.yml"
|
91
142
|
- ".gitignore"
|
143
|
+
- ".reek.yml"
|
92
144
|
- ".rspec"
|
145
|
+
- ".rubocop.yml"
|
93
146
|
- ".travis.yml"
|
147
|
+
- Changelog.mkd
|
94
148
|
- Gemfile
|
95
149
|
- LICENSE
|
96
150
|
- README.mkd
|
97
151
|
- Rakefile
|
98
152
|
- examples/enumerable.rb
|
153
|
+
- examples/printing_messages.rb
|
99
154
|
- examples/simple.rb
|
100
155
|
- lib/progress_bar.rb
|
101
156
|
- lib/progress_bar/core_ext/enumerable_with_progress.rb
|
@@ -112,12 +167,14 @@ files:
|
|
112
167
|
- spec/elapsed_spec.rb
|
113
168
|
- spec/eta_spec.rb
|
114
169
|
- spec/percentage_spec.rb
|
170
|
+
- spec/print_spec.rb
|
115
171
|
- spec/progress_bar_spec.rb
|
116
172
|
- spec/rate_spec.rb
|
117
173
|
- spec/spec_helper.rb
|
118
174
|
- spec/with_progress_spec.rb
|
119
175
|
homepage: http://github.com/paul/progress_bar
|
120
|
-
licenses:
|
176
|
+
licenses:
|
177
|
+
- WTFPL
|
121
178
|
metadata: {}
|
122
179
|
post_install_message:
|
123
180
|
rdoc_options: []
|
@@ -127,15 +184,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
127
184
|
requirements:
|
128
185
|
- - ">="
|
129
186
|
- !ruby/object:Gem::Version
|
130
|
-
version:
|
187
|
+
version: 2.4.0
|
131
188
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
132
189
|
requirements:
|
133
190
|
- - ">="
|
134
191
|
- !ruby/object:Gem::Version
|
135
192
|
version: '0'
|
136
193
|
requirements: []
|
137
|
-
|
138
|
-
rubygems_version: 2.6.6
|
194
|
+
rubygems_version: 3.1.2
|
139
195
|
signing_key:
|
140
196
|
specification_version: 4
|
141
197
|
summary: Simple Progress Bar for output to a terminal
|
@@ -146,6 +202,7 @@ test_files:
|
|
146
202
|
- spec/elapsed_spec.rb
|
147
203
|
- spec/eta_spec.rb
|
148
204
|
- spec/percentage_spec.rb
|
205
|
+
- spec/print_spec.rb
|
149
206
|
- spec/progress_bar_spec.rb
|
150
207
|
- spec/rate_spec.rb
|
151
208
|
- spec/spec_helper.rb
|