progress_bar 0.4.0 → 0.4.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.
data/Gemfile CHANGED
@@ -5,6 +5,7 @@ gem "highline"
5
5
  gem "options"
6
6
 
7
7
  group :development, :test do
8
+ gem "rake"
8
9
  gem "rspec"
9
10
  gem "timecop"
10
11
  gem "perftools.rb"
@@ -1,3 +1,3 @@
1
1
  class ProgressBar
2
- VERSION = "0.4.0"
2
+ VERSION = "0.4.1"
3
3
  end
data/lib/progress_bar.rb CHANGED
@@ -68,6 +68,7 @@ class ProgressBar
68
68
  end
69
69
 
70
70
  def to_s
71
+ self.count = max if count > max
71
72
  meters.inject("") do |text, meter|
72
73
  text << render(meter) + " "
73
74
  end.strip
@@ -92,6 +93,7 @@ class ProgressBar
92
93
  end
93
94
 
94
95
  def render_bar
96
+ return '' if bar_width < 2
95
97
  "[" +
96
98
  "#" * (ratio * (bar_width - 2)).ceil +
97
99
  " " * ((1-ratio) * (bar_width - 2)).floor +
@@ -120,7 +122,17 @@ class ProgressBar
120
122
  end
121
123
 
122
124
  def terminal_width
123
- @terminal_width ||= @hl.output_cols.to_i
125
+ # HighLine check takes a long time, so only update width every second.
126
+ if @last_width_adjustment.nil? || Time.now - @last_width_adjustment > 1
127
+ @last_width_adjustment = Time.now
128
+ @terminal_width = @hl.output_cols.to_i
129
+ if @terminal_width < 1
130
+ @terminal_width = 80
131
+ end
132
+ @terminal_width
133
+ else
134
+ @terminal_width
135
+ end
124
136
  end
125
137
 
126
138
  def bar_width
@@ -34,6 +34,14 @@ describe 'ProgressBar bar output' do
34
34
  it { should == "[##############] [100/100] [100%] [00:10] [00:00] [ 10.00/s]" }
35
35
  end
36
36
 
37
+ describe 'at count=105' do
38
+ before do
39
+ @progress_bar.count = 105
40
+ end
41
+
42
+ it { should == "[##############] [100/100] [100%] [00:10] [00:00] [ 10.00/s]" }
43
+ end
44
+
37
45
  end
38
46
 
39
47
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: progress_bar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-07-22 00:00:00.000000000Z
12
+ date: 2013-03-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: options
16
- requirement: &2156635980 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: 2.3.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2156635980
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 2.3.0
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: highline
27
- requirement: &2156635480 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ~>
@@ -32,7 +37,12 @@ dependencies:
32
37
  version: 1.6.1
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *2156635480
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 1.6.1
36
46
  description: ! 'Give people feedback about long-running tasks without overloading
37
47
  them with information: Use a progress bar, like Curl or Wget!'
38
48
  email:
@@ -76,6 +86,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
76
86
  - - ! '>='
77
87
  - !ruby/object:Gem::Version
78
88
  version: '0'
89
+ segments:
90
+ - 0
91
+ hash: -672631073319406219
79
92
  required_rubygems_version: !ruby/object:Gem::Requirement
80
93
  none: false
81
94
  requirements:
@@ -84,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
84
97
  version: '0'
85
98
  requirements: []
86
99
  rubyforge_project: progress_bar
87
- rubygems_version: 1.8.5
100
+ rubygems_version: 1.8.24
88
101
  signing_key:
89
102
  specification_version: 3
90
103
  summary: Simple Progress Bar for output to a terminal