progress_bar 1.0.5 → 1.3.2

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.
@@ -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