progress_bar 1.0.5 → 1.3.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,48 +1,50 @@
1
+ # frozen_string_literal: true
1
2
 
2
- require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper'))
3
+ require File.expand_path(File.join(File.dirname(__FILE__), "spec_helper"))
4
+
5
+ describe "ProgressBar elapsed output" do
6
+ let(:progress_bar) { ProgressBar.new(100, :elapsed) }
3
7
 
4
- describe 'ProgressBar elapsed output' do
5
8
  before do
6
9
  Timecop.freeze Time.utc(2010, 3, 10, 0, 0, 0)
7
- @progress_bar = ProgressBar.new(100, :elapsed)
10
+ progress_bar
8
11
  Timecop.freeze Time.utc(2010, 3, 10, 0, 0, 10) # 10 seconds later
9
12
  end
10
13
 
11
- subject { @progress_bar.to_s }
14
+ subject { progress_bar.to_s }
12
15
 
13
- describe 'at count=0' do
16
+ describe "at count=0" do
14
17
  before do
15
- @progress_bar.count = 0
18
+ progress_bar.count = 0
16
19
  end
17
20
 
18
21
  it { should == "[00:10]" }
19
22
  end
20
23
 
21
- describe 'at count=50' do
24
+ describe "at count=50" do
22
25
  before do
23
- @progress_bar.count = 50
26
+ progress_bar.count = 50
24
27
  end
25
28
 
26
29
  it { should == "[00:10]" }
27
30
  end
28
31
 
29
- describe 'at count=100' do
32
+ describe "at count=100" do
30
33
  before do
31
- @progress_bar.count = 100
34
+ progress_bar.count = 100
32
35
  end
33
36
 
34
37
  it { should == "[00:10]" }
35
38
  end
36
39
 
37
- describe 'with times over 1 hour' do
40
+ describe "with times over 1 hour" do
41
+ let(:progress_bar) { ProgressBar.new(42, :elapsed) }
42
+
38
43
  before do
39
44
  Timecop.freeze Time.utc(2010, 3, 10, 0, 0, 0)
40
- @progress_bar = ProgressBar.new(42, :elapsed)
41
45
  Timecop.freeze Time.utc(2010, 3, 10, 2, 0, 0) # 2 hours later
42
46
  end
43
47
 
44
- it { should == '[02:00:00]' }
48
+ it { should == "[02:00:00]" }
45
49
  end
46
-
47
50
  end
48
-
@@ -1,50 +1,51 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper'))
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
- @progress_bar = ProgressBar.new(100, :eta)
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 { @progress_bar.to_s }
14
+ subject { progress_bar.to_s }
11
15
 
12
- describe 'at count=0' do
16
+ describe "at count=0" do
13
17
  before do
14
- @progress_bar.count = 0
18
+ progress_bar.count = 0
15
19
  end
16
20
 
17
21
  it { should == "[00:00]" }
18
22
  end
19
23
 
20
- describe 'at count=50' do
24
+ describe "at count=50" do
21
25
  before do
22
- @progress_bar.count = 50
26
+ progress_bar.count = 50
23
27
  end
24
28
 
25
29
  it { should == "[00:10]" }
26
30
  end
27
31
 
28
- describe 'at count=100' do
32
+ describe "at count=100" do
29
33
  before do
30
- @progress_bar.count = 100
34
+ progress_bar.count = 100
31
35
  end
32
36
 
33
37
  it { should == "[00:00]" }
34
38
  end
35
39
 
36
- describe 'with times over 1 hour' do
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
- @progress_bar = ProgressBar.new(42, :eta)
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 == '[02:00:00]' }
49
+ it { should == "[02:00:00]" }
45
50
  end
46
-
47
51
  end
48
-
49
-
50
-
@@ -1,44 +1,43 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper'))
1
+ # frozen_string_literal: true
2
2
 
3
- describe 'ProgressBar percentage output' do
4
- before do
5
- @progress_bar = ProgressBar.new(100, :percentage)
6
- end
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 { @progress_bar.to_s }
8
+ subject { progress_bar.to_s }
9
9
 
10
- describe 'at count=0' do
10
+ describe "at count=0" do
11
11
  before do
12
- @progress_bar.count = 0
12
+ progress_bar.count = 0
13
13
  end
14
14
 
15
15
  it { should == "[ 0%]" }
16
16
  end
17
17
 
18
- describe 'at count=50' do
18
+ describe "at count=50" do
19
19
  before do
20
- @progress_bar.count = 50
20
+ progress_bar.count = 50
21
21
  end
22
22
 
23
23
  it { should == "[ 50%]" }
24
24
  end
25
25
 
26
- describe 'at count=100' do
26
+ describe "at count=100" do
27
27
  before do
28
- @progress_bar.count = 100
28
+ progress_bar.count = 100
29
29
  end
30
30
 
31
31
  it { should == "[100%]" }
32
32
  end
33
33
 
34
- describe 'with a max that is not 100' do
34
+ describe "with a max that is not 100" do
35
+ let(:progress_bar) { ProgressBar.new(42, :percentage) }
36
+
35
37
  before do
36
- @progress_bar = ProgressBar.new(42, :percentage)
37
- @progress_bar.count = 21
38
+ progress_bar.count = 21
38
39
  end
39
40
 
40
- it { should == '[ 50.00%]' }
41
+ it { should == "[ 50.00%]" }
41
42
  end
42
-
43
43
  end
44
-
@@ -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
@@ -1,47 +1,47 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper'))
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
- @progress_bar = ProgressBar.new(100)
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 { @progress_bar.to_s }
14
+ subject { progress_bar.to_s }
12
15
 
13
- describe 'at count=0' do
16
+ describe "at count=0" do
14
17
  before do
15
- @progress_bar.count = 0
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 'at count=50' do
24
+ describe "at count=50" do
22
25
  before do
23
- @progress_bar.count = 50
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 'at count=100' do
32
+ describe "at count=100" do
30
33
  before do
31
- @progress_bar.count = 100
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 'at count=105' do
40
+ describe "at count=105" do
38
41
  before do
39
- @progress_bar.count = 105
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
-
@@ -1,63 +1,63 @@
1
- require File.expand_path(File.join(File.dirname(__FILE__), 'spec_helper'))
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
- @progress_bar = ProgressBar.new(100, :rate)
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 { @progress_bar.to_s }
14
+ subject { progress_bar.to_s }
11
15
 
12
- describe 'at count=0' do
16
+ describe "at count=0" do
13
17
  before do
14
- @progress_bar.count = 0
18
+ progress_bar.count = 0
15
19
  end
16
20
 
17
21
  it { should == "[ 0.00/s]" }
18
22
  end
19
23
 
20
- describe 'at count=50' do
24
+ describe "at count=50" do
21
25
  before do
22
- @progress_bar.count = 50
26
+ progress_bar.count = 50
23
27
  end
24
28
 
25
29
  it { should == "[ 5.00/s]" }
26
30
  end
27
31
 
28
- describe 'at count=100' do
32
+ describe "at count=100" do
29
33
  before do
30
- @progress_bar.count = 100
34
+ progress_bar.count = 100
31
35
  end
32
36
 
33
37
  it { should == "[ 10.00/s]" }
34
38
  end
35
39
 
36
- describe 'with a shorter max' do
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
- @progress_bar = ProgressBar.new(42, :rate)
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 == '[ 2.10/s]' }
49
+ it { should == "[ 2.10/s]" }
45
50
  end
46
51
 
47
- describe 'with a longer max' do
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
- @progress_bar = ProgressBar.new(4242, :rate)
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 == '[ 2.10/s]' }
61
+ it { should == "[ 2.10/s]" }
56
62
  end
57
-
58
63
  end
59
-
60
-
61
-
62
-
63
-
@@ -1,12 +1,12 @@
1
+ # frozen_string_literal: true
1
2
 
2
- require File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib/progress_bar'))
3
+ require File.expand_path(File.join(File.dirname(__FILE__), "..", "lib/progress_bar"))
3
4
 
4
- require 'rspec'
5
- require 'timecop'
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
-
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+
3
+ require File.expand_path(File.join(File.dirname(__FILE__), "spec_helper"))
4
+
5
+ describe ProgressBar::WithProgress do
6
+ context "with block" do
7
+ let!(:bar){ ProgressBar.new }
8
+
9
+ before{
10
+ Range.include ProgressBar::WithProgress
11
+ allow(ProgressBar).to receive(:new){ |max| bar.max = max; bar }
12
+ }
13
+
14
+ it "should set max and increment on each iteration" do
15
+ (1..20).each_with_progress do |i|
16
+ break if i > 10
17
+ end
18
+ expect(bar.max).to eq 20
19
+ expect(bar.count).to eq 10
20
+ end
21
+ end
22
+
23
+ context "without block" do
24
+ let!(:bar){ ProgressBar.new }
25
+
26
+ before{
27
+ Range.include ProgressBar::WithProgress
28
+ allow(ProgressBar).to receive(:new){ |max| bar.max = max; bar }
29
+ }
30
+
31
+ it "should give Enumerator" do
32
+ enum = (1..20).each_with_progress
33
+ expect(enum).to be_kind_of(Enumerator)
34
+ expect(bar.max).to eq 20
35
+ expect(bar.count).to eq 0
36
+
37
+ res = enum.map{ |i| i + 1 }
38
+ expect(res).to eq (2..21).to_a
39
+ expect(bar.count).to eq 20
40
+ end
41
+ end
42
+ 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.0.5
4
+ version: 1.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Sadauskas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-15 00:00:00.000000000 Z
11
+ date: 2020-10-29 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: highline
48
+ name: rake
29
49
  requirement: !ruby/object:Gem::Requirement
30
50
  requirements:
31
- - - "~>"
51
+ - - ">="
32
52
  - !ruby/object:Gem::Version
33
- version: '1.6'
34
- type: :runtime
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: '1.6'
60
+ version: '0'
41
61
  - !ruby/object:Gem::Dependency
42
- name: rake
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,16 +136,26 @@ 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
152
+ - examples/enumerable.rb
153
+ - examples/printing_messages.rb
98
154
  - examples/simple.rb
99
155
  - lib/progress_bar.rb
156
+ - lib/progress_bar/core_ext/enumerable_with_progress.rb
100
157
  - lib/progress_bar/version.rb
158
+ - lib/progress_bar/with_progress.rb
101
159
  - profile/shell_every_update
102
160
  - profile/shell_every_update.gif
103
161
  - profile/shell_once
@@ -109,11 +167,14 @@ files:
109
167
  - spec/elapsed_spec.rb
110
168
  - spec/eta_spec.rb
111
169
  - spec/percentage_spec.rb
170
+ - spec/print_spec.rb
112
171
  - spec/progress_bar_spec.rb
113
172
  - spec/rate_spec.rb
114
173
  - spec/spec_helper.rb
174
+ - spec/with_progress_spec.rb
115
175
  homepage: http://github.com/paul/progress_bar
116
- licenses: []
176
+ licenses:
177
+ - WTFPL
117
178
  metadata: {}
118
179
  post_install_message:
119
180
  rdoc_options: []
@@ -123,15 +184,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
123
184
  requirements:
124
185
  - - ">="
125
186
  - !ruby/object:Gem::Version
126
- version: '0'
187
+ version: 2.4.0
127
188
  required_rubygems_version: !ruby/object:Gem::Requirement
128
189
  requirements:
129
190
  - - ">="
130
191
  - !ruby/object:Gem::Version
131
192
  version: '0'
132
193
  requirements: []
133
- rubyforge_project: progress_bar
134
- rubygems_version: 2.4.5.1
194
+ rubygems_version: 3.1.2
135
195
  signing_key:
136
196
  specification_version: 4
137
197
  summary: Simple Progress Bar for output to a terminal
@@ -142,6 +202,8 @@ test_files:
142
202
  - spec/elapsed_spec.rb
143
203
  - spec/eta_spec.rb
144
204
  - spec/percentage_spec.rb
205
+ - spec/print_spec.rb
145
206
  - spec/progress_bar_spec.rb
146
207
  - spec/rate_spec.rb
147
208
  - spec/spec_helper.rb
209
+ - spec/with_progress_spec.rb