ruby-progressbar 1.0.2 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1 @@
1
+ 1.9.3
data/Gemfile CHANGED
@@ -1,9 +1,10 @@
1
1
  source "http://rubygems.org"
2
2
 
3
3
  gem 'rake'
4
+ gem 'json', '~> 1.7.7'
4
5
 
5
6
  platforms :ruby do
6
- gem 'ruby-prof', '~> 0.11.2'
7
+ gem 'ruby-prof', '~> 0.13.0'
7
8
  end
8
9
 
9
10
  gemspec
data/README.md CHANGED
@@ -28,19 +28,27 @@ Installation
28
28
 
29
29
  First:
30
30
 
31
- gem install ruby-progressbar
31
+ ```ruby
32
+ gem install ruby-progressbar
33
+ ```
32
34
 
33
35
  Then in your script:
34
36
 
35
- require 'ruby-progressbar'
37
+ ```ruby
38
+ require 'ruby-progressbar'
39
+ ```
36
40
 
37
41
  or in your Gemfile
38
42
 
39
- gem 'ruby-progressbar'
43
+ ```ruby
44
+ gem 'ruby-progressbar'
45
+ ```
40
46
 
41
47
  or from IRB
42
48
 
43
- irb -r 'ruby-progressbar'
49
+ ```ruby
50
+ irb -r 'ruby-progressbar'
51
+ ```
44
52
 
45
53
  Basic Usage
46
54
  --------------------------------
@@ -49,7 +57,9 @@ Basic Usage
49
57
 
50
58
  It's simple to get started:
51
59
 
52
- ProgressBar.create
60
+ ```ruby
61
+ ProgressBar.create
62
+ ```
53
63
 
54
64
  Creates a basic progress bar beginning at `0`, a total capacity of `100` and tells it to start.
55
65
 
@@ -59,7 +69,9 @@ Creates a basic progress bar beginning at `0`, a total capacity of `100` and tel
59
69
 
60
70
  Every call to `#increment` will advance the bar by `1`. Therefore:
61
71
 
62
- 50.times { progressbar.increment }
72
+ ```ruby
73
+ 50.times { progressbar.increment }
74
+ ```
63
75
 
64
76
  Would output an advancing line which would end up here:
65
77
 
@@ -72,7 +84,9 @@ Advanced Usage
72
84
 
73
85
  If you would like to customize your prompt, you can pass options when you call `.create`.
74
86
 
75
- ProgressBar.create(:title => "Items", :starting_at => 20, :total => 200)
87
+ ```ruby
88
+ ProgressBar.create(:title => "Items", :starting_at => 20, :total => 200)
89
+ ```
76
90
 
77
91
  Will output:
78
92
 
@@ -145,7 +159,9 @@ You can use as many bar flags as you'd like, but if you do weird things, weird t
145
159
 
146
160
  If you would like a bar with the elapsed time on the left and the percentage complete followed by the title on the right, you'd do this:
147
161
 
148
- ProgressBar.create(:format => '%a %B %p%% %t')
162
+ ```ruby
163
+ ProgressBar.create(:format => '%a %B %p%% %t')
164
+ ```
149
165
 
150
166
  Which will output something like this:
151
167
 
@@ -153,7 +169,9 @@ Which will output something like this:
153
169
 
154
170
  Hard to see where the bar is? Just add your own end caps, whatever you'd like. Like so:
155
171
 
156
- ProgressBar.create(:format => '%a <%B> %p%% %t')
172
+ ```ruby
173
+ ProgressBar.create(:format => '%a <%B> %p%% %t')
174
+ ```
157
175
 
158
176
  Becomes:
159
177
 
@@ -161,7 +179,9 @@ Becomes:
161
179
 
162
180
  Want to put an end cap on your bar? Nothing special, just use the bar flag `%b` combined with the incomplete space flag `%i` like so:
163
181
 
164
- ProgressBar.create(:format => '%a |%b>>%i| %p%% %t', :starting_at => 10)
182
+ ```ruby
183
+ ProgressBar.create(:format => '%a |%b>>%i| %p%% %t', :starting_at => 10)
184
+ ```
165
185
 
166
186
  Becomes:
167
187
 
@@ -173,7 +193,9 @@ Notice that the absolute length doesn't get any longer, the bar just shrinks to
173
193
 
174
194
  By default, the progressbar will try to be as smart as possible about how wide it can be. Under most Unix systems, it should be as wide as the terminal will allow while still fitting on one line. If you wish to override this behavior, you can pass in the `:length` option when creating the bar like so:
175
195
 
176
- ProgressBar.create(:length => 40)
196
+ ```ruby
197
+ ProgressBar.create(:length => 40)
198
+ ```
177
199
 
178
200
  Additionally, if you don't have access to the code calling the progressbar itself (say if you're using a gem like Fuubar), you can set the `RUBY_PROGRESS_BAR_LENGTH` environment variable and it will always override any other setting.
179
201
 
@@ -201,7 +223,9 @@ __RUBY PROGRESS BAR TO THE RESCUE!__
201
223
 
202
224
  Thanks to [@L2G](https://github.com/L2G) and 'the maths' you can pass the `:smoothing` option when creating a new bar and it will use an exponentially smoothed average rather than a linear one. A value of `0.0` means no smoothing and is equivalent to the classic behavior. A value of `1.0` is the maximum amount of smoothing. Any values between those two are valid. `0.1` is the default.
203
225
 
204
- ProgressBar.create(:smoothing => 0.6)
226
+ ```ruby
227
+ ProgressBar.create(:smoothing => 0.6)
228
+ ```
205
229
 
206
230
  #### Time Mocking Support
207
231
 
@@ -210,6 +234,16 @@ When mocking time, the concept of when `now` is becomes distorted. You can imag
210
234
  * [Timecop](https://github.com/jtrupiano/timecop)
211
235
  * [Delorean](https://github.com/bebanjo/delorean)
212
236
 
237
+ ### Throttling
238
+
239
+ When reporting progress of large amounts of very fast operations, whose duration is comparable to the output time of a progress bar, it becomes desirable to throttle output to the console and only perform it once in a set period. ProgressBar supports throttling if given `:throttle_rate` option:
240
+
241
+ ProgressBar.create(:throttle_rate => 0.1)
242
+
243
+ The above progress bar will output at most 10 times a second.
244
+
245
+ The default throttling rate if none is specified is 100 times per second (or 0.01)
246
+
213
247
  Road Map
214
248
  --------------------------------
215
249
  We're planning on adding a bunch of really nice features to this gem over the next few weeks. We want to keep the simple usage simple but allow for powerful features if they're needed. Our `1.0` release is the first step in that direction.
@@ -16,6 +16,7 @@ class ProgressBar
16
16
  @bar = Components::Bar.new(options)
17
17
  @estimated_time = Components::EstimatedTimer.new(options)
18
18
  @elapsed_time = Components::ElapsedTimer.new
19
+ @throttle = Components::Throttle.new(options)
19
20
 
20
21
  start :at => options[:starting_at]
21
22
  end
@@ -150,13 +151,15 @@ class ProgressBar
150
151
  def update
151
152
  with_timers(:stop) if finished?
152
153
 
153
- if length_changed?
154
- clear
155
- reset_length
156
- end
154
+ @throttle.choke( finished? ) do
155
+ if length_changed?
156
+ clear
157
+ reset_length
158
+ end
157
159
 
158
- output.print self.to_s + eol
159
- output.flush
160
+ output.print self.to_s + eol
161
+ output.flush
162
+ end
160
163
  end
161
164
 
162
165
  def eol
@@ -3,3 +3,4 @@ require 'progress_bar/components/progressable'
3
3
  require 'progress_bar/components/bar'
4
4
  require 'progress_bar/components/estimated_timer'
5
5
  require 'progress_bar/components/elapsed_timer'
6
+ require 'progress_bar/components/throttle'
@@ -16,9 +16,7 @@ class ProgressBar
16
16
 
17
17
  def to_s(options = {:format => :standard})
18
18
  completed_string = send(:"#{options[:format]}_complete_string")
19
- empty_string = ' ' * (length - completed_string.length)
20
-
21
- "#{completed_string}#{empty_string}"
19
+ completed_string.ljust(length, ' ')
22
20
  end
23
21
 
24
22
  def integrated_percentage_complete_string
@@ -11,7 +11,7 @@ class ProgressBar
11
11
  def elapsed_time
12
12
  return '--:--:--' unless started?
13
13
 
14
- hours, minutes, seconds = divide_seconds(elapsed_seconds)
14
+ hours, minutes, seconds = divide_seconds(elapsed_whole_seconds)
15
15
 
16
16
  sprintf TIME_FORMAT, hours, minutes, seconds
17
17
  end
@@ -46,11 +46,11 @@ class ProgressBar
46
46
  def average_seconds_per_each
47
47
  return 0 if self.running_average.zero?
48
48
 
49
- elapsed_seconds.to_f / self.running_average
49
+ elapsed_whole_seconds.to_f / self.running_average
50
50
  end
51
51
 
52
52
  def estimated_seconds_remaining
53
- ((average_seconds_per_each * self.total) - elapsed_seconds.to_f).floor
53
+ ((average_seconds_per_each * self.total) - elapsed_whole_seconds.to_f).floor
54
54
  end
55
55
 
56
56
  def out_of_bounds_time
@@ -79,6 +79,10 @@ class ProgressBar
79
79
  @ancestor = ancestor
80
80
  end
81
81
 
82
+ def start(*args, &blk)
83
+ @ancestor.instance_method(:start).bind(@subject).call(*args,&blk)
84
+ end
85
+
82
86
  def method_missing(sym, *args, &blk)
83
87
  @ancestor.instance_method(sym).bind(@subject).call(*args,&blk)
84
88
  end
@@ -66,7 +66,7 @@ class ProgressBar
66
66
  # Doing this way so we can avoid converting each
67
67
  # number to a float and then back to an integer.
68
68
  #
69
- self.progress * 100 / total
69
+ (self.progress * 100 / total).to_i
70
70
  end
71
71
 
72
72
  def percentage_completed_with_precision
@@ -0,0 +1,19 @@
1
+ class ProgressBar
2
+ module Components
3
+ class Throttle
4
+ include Timer
5
+
6
+ def initialize(options = {})
7
+ @period = options.delete(:throttle_rate) { 0.01 }
8
+ end
9
+
10
+ def choke(force = false, &block)
11
+ if !started? || @period.nil? || force || elapsed_seconds >= @period
12
+ yield
13
+
14
+ start
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -41,13 +41,17 @@ class ProgressBar
41
41
  end
42
42
 
43
43
  def elapsed_seconds
44
- ((@stopped_at || now) - @started_at).floor
44
+ ((@stopped_at || now) - @started_at)
45
+ end
46
+
47
+ def elapsed_whole_seconds
48
+ elapsed_seconds.floor
45
49
  end
46
50
 
47
51
  def elapsed_time
48
52
  return '--:--:--' unless started?
49
53
 
50
- hours, seconds = elapsed_seconds.divmod(3600)
54
+ hours, seconds = elapsed_whole_seconds.divmod(3600)
51
55
  minutes, seconds = seconds.divmod(60)
52
56
 
53
57
  sprintf TIME_FORMAT, hours, minutes, seconds
@@ -2,6 +2,7 @@ class ProgressBar
2
2
  module LengthCalculator
3
3
  def initialize(options)
4
4
  @length_override = ENV['RUBY_PROGRESS_BAR_LENGTH'] || options[:length]
5
+ @length_override = @length_override.to_i if @length_override
5
6
 
6
7
  super()
7
8
  end
@@ -1,3 +1,3 @@
1
1
  class ProgressBar
2
- VERSION = '1.0.2'
2
+ VERSION = '1.1.0'
3
3
  end
@@ -13,7 +13,7 @@ Gem::Specification.new do |s|
13
13
 
14
14
  s.authors = ["thekompanee", "jfelchner"]
15
15
  s.email = 'support@thekompanee.com'
16
- s.date = Date.today
16
+ s.date = Time.now
17
17
  s.homepage = 'https://github.com/jfelchner/ruby-progressbar'
18
18
 
19
19
  s.summary = 'Ruby/ProgressBar is a flexible text progress bar library for Ruby.'
@@ -23,21 +23,17 @@ The output can be customized with a flexible formatting system including:
23
23
  percentage, bars of various formats, elapsed time and estimated time remaining.
24
24
  THEDOCTOR
25
25
 
26
- s.rdoc_options = ["--charset = UTF-8"]
26
+ s.rdoc_options = ['--charset', 'UTF-8']
27
27
  s.extra_rdoc_files = %w[README.md LICENSE]
28
28
 
29
29
  #= Manifest =#
30
- # s.default_executable = 'nothing'
31
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
32
- s.files = `git ls-files`.split("\n")
33
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
30
+ s.files = `git ls-files`.split($/)
31
+ s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
32
+ s.test_files = s.files.grep(%r{^(test|spec|features)/})
34
33
  s.require_paths = ["lib"]
35
- #= Manifest =#
36
34
 
37
- s.add_development_dependency('rspec', '~> 2.11')
38
- s.add_development_dependency('timecop', '~> 0.5')
39
- s.add_development_dependency('simplecov', '~> 0.5')
40
- s.add_development_dependency('guard', '~> 1.4')
41
- s.add_development_dependency('guard-rspec', '~> 2.1')
42
- s.add_development_dependency('rb-fsevent', '~> 0.9')
35
+ s.add_development_dependency('rspec', '~> 2.13')
36
+ s.add_development_dependency('rspectacular', '~> 0.13')
37
+ s.add_development_dependency('timecop', '~> 0.6')
38
+ s.add_development_dependency('simplecov', '~> 0.8pre')
43
39
  end
@@ -1,11 +1,22 @@
1
1
  require 'spec_helper'
2
2
  require 'stringio'
3
- require 'timecop'
4
3
 
5
4
  describe ProgressBar::Base do
6
5
  before do
7
6
  @output = StringIO.new('', 'w+')
8
- @progressbar = ProgressBar::Base.new(:output => @output, :length => 80)
7
+ @progressbar = ProgressBar::Base.new(:output => @output, :length => 80, :throttle_rate => 0.0)
8
+ end
9
+
10
+ describe 'terminal width dropping below title length' do
11
+ it 'should not crash' do
12
+ @progressbar = ProgressBar::Base.new(:output => @output)
13
+ @progressbar.stub(:terminal_width).and_return(100)
14
+ @progressbar.title = 'a'*95
15
+ @progressbar.stub(:terminal_width).and_return(60)
16
+ expect {
17
+ @progressbar.title = 'a'*95
18
+ }.to_not raise_error
19
+ end
9
20
  end
10
21
 
11
22
  context 'when a new bar is created' do
@@ -25,18 +36,39 @@ describe ProgressBar::Base do
25
36
  end
26
37
 
27
38
  describe '#length' do
28
- it 'returns the width of the terminal if it is a Unix environment' do
29
- @progressbar.stub(:terminal_width).and_return(99)
30
- @progressbar.send(:reset_length) # This should be changed to use #any_instance
31
- @progressbar.send(:length).should eql 99
39
+ context 'when the RUBY_PROGRESS_BAR_LENGTH environment variable exists' do
40
+ before { ENV['RUBY_PROGRESS_BAR_LENGTH'] = '44' }
41
+ after { ENV['RUBY_PROGRESS_BAR_LENGTH'] = nil }
42
+
43
+ it 'returns the length of the environment variable as an integer' do
44
+ @progressbar = ProgressBar::Base.new
45
+ @progressbar.send(:length).should eql 44
46
+ end
32
47
  end
33
- end
34
48
 
35
- describe '#length' do
36
- it 'returns 80 if it is not a Unix environment' do
37
- @progressbar.stub(:unix?).and_return(false)
38
- @progressbar.send(:reset_length) # This should be changed to use #any_instance
39
- @progressbar.send(:length).should eql 80
49
+ context 'when the RUBY_PROGRESS_BAR_LENGTH environment variable does not exist' do
50
+ before { ENV['RUBY_PROGRESS_BAR_LENGTH'] = nil }
51
+
52
+ context 'but the length option was passed in' do
53
+ it 'returns the length specified in the option' do
54
+ @progressbar = ProgressBar::Base.new(:length => 88)
55
+ @progressbar.send(:length).should eql 88
56
+ end
57
+ end
58
+
59
+ context 'and no length option was passed in' do
60
+ it 'returns the width of the terminal if it is a Unix environment' do
61
+ @progressbar.stub(:terminal_width).and_return(99)
62
+ @progressbar.send(:reset_length)
63
+ @progressbar.send(:length).should eql 99
64
+ end
65
+
66
+ it 'returns 80 if it is not a Unix environment' do
67
+ @progressbar.stub(:unix?).and_return(false)
68
+ @progressbar.send(:reset_length)
69
+ @progressbar.send(:length).should eql 80
70
+ end
71
+ end
40
72
  end
41
73
  end
42
74
  end
@@ -122,7 +154,7 @@ describe ProgressBar::Base do
122
154
 
123
155
  context 'when a bar is started' do
124
156
  before do
125
- @progressbar = ProgressBar::Base.new(:starting_at => 0, :total => 100, :output => @output, :length => 80)
157
+ @progressbar = ProgressBar::Base.new(:starting_at => 0, :total => 100, :output => @output, :length => 80, :throttle_rate => 0.0)
126
158
  end
127
159
 
128
160
  context 'and it is incremented any number of times' do
@@ -218,7 +250,7 @@ describe ProgressBar::Base do
218
250
  end
219
251
 
220
252
  context 'when the bar has not been completed' do
221
- before { @progressbar = ProgressBar::Base.new(:length => 112, :starting_at => 0, :total => 50, :output => @output) }
253
+ before { @progressbar = ProgressBar::Base.new(:length => 112, :starting_at => 0, :total => 50, :output => @output, :throttle_rate => 0.0) }
222
254
 
223
255
  describe '#increment' do
224
256
  before { @progressbar.increment }
@@ -1,5 +1,4 @@
1
1
  require 'spec_helper'
2
- require 'timecop'
3
2
 
4
3
  describe ProgressBar::Components::ElapsedTimer do
5
4
  before { @timer = ProgressBar::Components::ElapsedTimer.new }
@@ -170,4 +170,42 @@ describe ProgressBar::Components::EstimatedTimer do
170
170
  end
171
171
  end
172
172
  end
173
+
174
+ describe '#start' do
175
+
176
+ ###
177
+ # Using ruby-debug under jruby pulls in ruby-debug-base, which defines
178
+ # Kernel.start. This causes a bug, as EstimatedTimer::As::method_missing calls
179
+ # Kernel.start instead of EstimatedTimer.start. This spec duplicates the bug.
180
+ # Without the fix, this results in the following exception:
181
+ #
182
+ # 1) ruby-debug-base doesn't stop the progressbar from working
183
+ # Failure/Error: COUNT.times { bar.increment }
184
+ # NoMethodError:
185
+ # undefined method `+' for nil:NilClass
186
+ # # ./lib/progress_bar/components/progressable.rb:33:in `increment'
187
+ #
188
+ it 'properly delegates' do
189
+ @output = StringIO.new('', 'w+')
190
+
191
+ module Kernel
192
+ def start(options={}, &block)
193
+ puts "Kernel.start has been called"
194
+ return nil
195
+ end
196
+ end
197
+
198
+ begin
199
+ COUNT = 100
200
+
201
+ bar = ProgressBar.create(:output => @output, :title => 'ruby-debug-base', :total => COUNT)
202
+
203
+ COUNT.times { bar.increment }
204
+ ensure
205
+ module Kernel
206
+ remove_method :start
207
+ end
208
+ end
209
+ end
210
+ end
173
211
  end
@@ -0,0 +1,101 @@
1
+ require 'spec_helper'
2
+ require 'timecop'
3
+
4
+ describe ProgressBar::Components::Throttle do
5
+ context 'given a numeric period' do
6
+ before do
7
+ Timecop.freeze(0) {
8
+ @throttle = ProgressBar::Components::Throttle.new(:throttle_rate => 10)
9
+ }
10
+ end
11
+
12
+ describe '#choke' do
13
+ it 'yields the first time' do
14
+ yielded = false
15
+
16
+ @throttle.choke { yielded = true }
17
+
18
+ yielded.should be_true
19
+ end
20
+
21
+ context 'after initial yield' do
22
+ before do
23
+ Timecop.freeze(0) { @throttle.choke { } }
24
+ end
25
+
26
+ it "doesn't yield if period hasn't passed yet" do
27
+ yielded = false
28
+
29
+ (1..9).each do |t|
30
+ Timecop.freeze(t) { @throttle.choke { yielded = true } }
31
+
32
+ yielded.should be_false
33
+ end
34
+ end
35
+
36
+ it 'always yields if passed true' do
37
+ yielded = -1
38
+
39
+ (0..25).each do |t|
40
+ Timecop.freeze(t) { @throttle.choke(true) { yielded += 1 } }
41
+
42
+ yielded.should == t
43
+ end
44
+ end
45
+
46
+ it "yields after period has passed" do
47
+ yielded = false
48
+
49
+ Timecop.freeze(15) { @throttle.choke { yielded = true } }
50
+
51
+ yielded.should be_true
52
+ end
53
+ end
54
+
55
+ context 'after a yield' do
56
+ before do
57
+ Timecop.freeze(0) { @throttle.choke { } }
58
+ Timecop.freeze(15) { @throttle.choke { } }
59
+ end
60
+
61
+ it "doesn't yield if period hasn't passed yet" do
62
+ yielded = false
63
+
64
+ (16..24).each do |t|
65
+ Timecop.freeze(t) { @throttle.choke { yielded = true } }
66
+
67
+ yielded.should be_false
68
+ end
69
+ end
70
+
71
+ it "yields after period has passed" do
72
+ yielded = false
73
+
74
+ Timecop.freeze(25) { @throttle.choke { yielded = true } }
75
+
76
+ yielded.should be_true
77
+ end
78
+ end
79
+ end
80
+ end
81
+
82
+ context 'given no throttle period' do
83
+ before do
84
+ Timecop.freeze(0) {
85
+ @throttle = ProgressBar::Components::Throttle.new()
86
+ }
87
+ end
88
+
89
+ describe '#choke' do
90
+ it 'yields every time' do
91
+ yielded = -1
92
+
93
+ (0..25).each do |t|
94
+ Timecop.freeze(t) { @throttle.choke { yielded += 1 } }
95
+
96
+ yielded.should == t
97
+ end
98
+ end
99
+ end
100
+ end
101
+ end
@@ -1,13 +1,10 @@
1
1
  require 'simplecov'
2
2
  SimpleCov.start
3
3
 
4
+ require 'mathn'
4
5
  require 'rspec'
5
6
 
6
7
  Dir[File.join(File.dirname(__FILE__), '..', 'lib', 'ruby-progressbar.rb')].each {|f| require f}
7
8
  Dir[File.join(File.dirname(__FILE__), '..', 'spec', 'support', '**', '*.rb')].each {|f| require f}
8
9
 
9
- RSpec.configure do |c|
10
- c.treat_symbols_as_metadata_keys_with_true_values = true
11
-
12
- c.mock_with :rspec
13
- end
10
+ require 'rspectacular'
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-progressbar
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-10-07 00:00:00.000000000 Z
13
+ date: 2013-05-29 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rspec
@@ -19,7 +19,7 @@ dependencies:
19
19
  requirements:
20
20
  - - ~>
21
21
  - !ruby/object:Gem::Version
22
- version: '2.11'
22
+ version: '2.13'
23
23
  type: :development
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -27,31 +27,15 @@ dependencies:
27
27
  requirements:
28
28
  - - ~>
29
29
  - !ruby/object:Gem::Version
30
- version: '2.11'
30
+ version: '2.13'
31
31
  - !ruby/object:Gem::Dependency
32
- name: timecop
33
- requirement: !ruby/object:Gem::Requirement
34
- none: false
35
- requirements:
36
- - - ~>
37
- - !ruby/object:Gem::Version
38
- version: '0.5'
39
- type: :development
40
- prerelease: false
41
- version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
- requirements:
44
- - - ~>
45
- - !ruby/object:Gem::Version
46
- version: '0.5'
47
- - !ruby/object:Gem::Dependency
48
- name: simplecov
32
+ name: rspectacular
49
33
  requirement: !ruby/object:Gem::Requirement
50
34
  none: false
51
35
  requirements:
52
36
  - - ~>
53
37
  - !ruby/object:Gem::Version
54
- version: '0.5'
38
+ version: '0.13'
55
39
  type: :development
56
40
  prerelease: false
57
41
  version_requirements: !ruby/object:Gem::Requirement
@@ -59,31 +43,15 @@ dependencies:
59
43
  requirements:
60
44
  - - ~>
61
45
  - !ruby/object:Gem::Version
62
- version: '0.5'
46
+ version: '0.13'
63
47
  - !ruby/object:Gem::Dependency
64
- name: guard
65
- requirement: !ruby/object:Gem::Requirement
66
- none: false
67
- requirements:
68
- - - ~>
69
- - !ruby/object:Gem::Version
70
- version: '1.4'
71
- type: :development
72
- prerelease: false
73
- version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
- requirements:
76
- - - ~>
77
- - !ruby/object:Gem::Version
78
- version: '1.4'
79
- - !ruby/object:Gem::Dependency
80
- name: guard-rspec
48
+ name: timecop
81
49
  requirement: !ruby/object:Gem::Requirement
82
50
  none: false
83
51
  requirements:
84
52
  - - ~>
85
53
  - !ruby/object:Gem::Version
86
- version: '2.1'
54
+ version: '0.6'
87
55
  type: :development
88
56
  prerelease: false
89
57
  version_requirements: !ruby/object:Gem::Requirement
@@ -91,15 +59,15 @@ dependencies:
91
59
  requirements:
92
60
  - - ~>
93
61
  - !ruby/object:Gem::Version
94
- version: '2.1'
62
+ version: '0.6'
95
63
  - !ruby/object:Gem::Dependency
96
- name: rb-fsevent
64
+ name: simplecov
97
65
  requirement: !ruby/object:Gem::Requirement
98
66
  none: false
99
67
  requirements:
100
68
  - - ~>
101
69
  - !ruby/object:Gem::Version
102
- version: '0.9'
70
+ version: 0.8pre
103
71
  type: :development
104
72
  prerelease: false
105
73
  version_requirements: !ruby/object:Gem::Requirement
@@ -107,7 +75,7 @@ dependencies:
107
75
  requirements:
108
76
  - - ~>
109
77
  - !ruby/object:Gem::Version
110
- version: '0.9'
78
+ version: 0.8pre
111
79
  description: ! 'Ruby/ProgressBar is an extremely flexible text progress bar library
112
80
  for Ruby.
113
81
 
@@ -125,11 +93,10 @@ extra_rdoc_files:
125
93
  files:
126
94
  - .gitignore
127
95
  - .rspec
128
- - .rvmrc
96
+ - .ruby-version
129
97
  - .travis.yml
130
98
  - Gemfile
131
99
  - Gemfile.lock
132
- - Guardfile
133
100
  - LICENSE
134
101
  - README.md
135
102
  - Rakefile
@@ -139,6 +106,7 @@ files:
139
106
  - lib/progress_bar/components/elapsed_timer.rb
140
107
  - lib/progress_bar/components/estimated_timer.rb
141
108
  - lib/progress_bar/components/progressable.rb
109
+ - lib/progress_bar/components/throttle.rb
142
110
  - lib/progress_bar/components/timer.rb
143
111
  - lib/progress_bar/depreciable.rb
144
112
  - lib/progress_bar/format.rb
@@ -158,17 +126,18 @@ files:
158
126
  - spec/progress_bar/components/elapsed_timer_spec.rb
159
127
  - spec/progress_bar/components/estimated_timer_spec.rb
160
128
  - spec/progress_bar/components/progressable_spec.rb
129
+ - spec/progress_bar/components/throttle_spec.rb
161
130
  - spec/progress_bar/format/molecule_spec.rb
162
131
  - spec/progress_bar/running_average_calculator_spec.rb
163
132
  - spec/progress_bar/time_spec.rb
164
133
  - spec/spec_helper.rb
165
- - spec/support/focused.rb
166
- - spec/support/timecop.rb
134
+ - spec/support/time.rb
167
135
  homepage: https://github.com/jfelchner/ruby-progressbar
168
136
  licenses: []
169
137
  post_install_message:
170
138
  rdoc_options:
171
- - --charset = UTF-8
139
+ - --charset
140
+ - UTF-8
172
141
  require_paths:
173
142
  - lib
174
143
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -185,7 +154,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
154
  version: '0'
186
155
  requirements: []
187
156
  rubyforge_project: ruby-progressbar
188
- rubygems_version: 1.8.24
157
+ rubygems_version: 1.8.23
189
158
  signing_key:
190
159
  specification_version: 3
191
160
  summary: Ruby/ProgressBar is a flexible text progress bar library for Ruby.
@@ -196,9 +165,10 @@ test_files:
196
165
  - spec/progress_bar/components/elapsed_timer_spec.rb
197
166
  - spec/progress_bar/components/estimated_timer_spec.rb
198
167
  - spec/progress_bar/components/progressable_spec.rb
168
+ - spec/progress_bar/components/throttle_spec.rb
199
169
  - spec/progress_bar/format/molecule_spec.rb
200
170
  - spec/progress_bar/running_average_calculator_spec.rb
201
171
  - spec/progress_bar/time_spec.rb
202
172
  - spec/spec_helper.rb
203
- - spec/support/focused.rb
204
- - spec/support/timecop.rb
173
+ - spec/support/time.rb
174
+ has_rdoc:
data/.rvmrc DELETED
@@ -1 +0,0 @@
1
- rvm ruby-1.9.3-p125@progressbar
data/Guardfile DELETED
@@ -1,10 +0,0 @@
1
- notification :tmux,
2
- :success => 'colour22',
3
- :failed => 'colour52',
4
- :display_message => true
5
-
6
- guard 'rspec', :version => 2 do
7
- watch(%r{^spec/.+_spec\.rb$})
8
- watch(%r{^lib/(.+)\.rb$}) { 'spec' }
9
- watch('spec/spec_helper.rb') { 'spec' }
10
- end
@@ -1,7 +0,0 @@
1
- RSpec.configure do |config|
2
- # Configure RSpec to run focused specs, and also respect the alias 'fit' for focused specs
3
- config.filter_run :focused => true
4
- config.alias_example_to :fit, :focused => true
5
- config.alias_example_to :pit, :pending => true
6
- config.run_all_when_everything_filtered = true
7
- end