ruby-progressbar 1.7.5 → 1.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +3 -0
  3. data.tar.gz.sig +2 -0
  4. data/LICENSE.txt +19 -0
  5. data/README.md +4 -2
  6. data/lib/ruby-progressbar/base.rb +3 -5
  7. data/lib/ruby-progressbar/calculators/length.rb +1 -0
  8. data/lib/ruby-progressbar/components/bar.rb +3 -3
  9. data/lib/ruby-progressbar/components/time.rb +7 -7
  10. data/lib/ruby-progressbar/components/title.rb +1 -1
  11. data/lib/ruby-progressbar/format/molecule.rb +5 -5
  12. data/lib/ruby-progressbar/outputs/non_tty.rb +1 -1
  13. data/lib/ruby-progressbar/outputs/tty.rb +2 -2
  14. data/lib/ruby-progressbar/progress.rb +7 -7
  15. data/lib/ruby-progressbar/time.rb +18 -13
  16. data/lib/ruby-progressbar/timer.rb +1 -1
  17. data/lib/ruby-progressbar/version.rb +2 -2
  18. data/spec/ruby-progressbar/base_spec.rb +3 -3
  19. data/spec/ruby-progressbar/calculators/running_average_spec.rb +3 -3
  20. data/spec/ruby-progressbar/components/bar_spec.rb +3 -3
  21. data/spec/ruby-progressbar/components/percentage_spec.rb +3 -3
  22. data/spec/ruby-progressbar/components/rate_spec.rb +3 -3
  23. data/spec/ruby-progressbar/components/throttle_spec.rb +2 -2
  24. data/spec/ruby-progressbar/components/time_spec.rb +6 -7
  25. data/spec/ruby-progressbar/components/title_spec.rb +3 -3
  26. data/spec/ruby-progressbar/format/formatter_spec.rb +3 -3
  27. data/spec/ruby-progressbar/format/molecule_spec.rb +3 -3
  28. data/spec/ruby-progressbar/format/string_spec.rb +3 -3
  29. data/spec/ruby-progressbar/output_spec.rb +2 -2
  30. data/spec/ruby-progressbar/outputs/non_tty_spec.rb +3 -3
  31. data/spec/ruby-progressbar/outputs/tty_spec.rb +3 -3
  32. data/spec/ruby-progressbar/progress_spec.rb +8 -2
  33. data/spec/ruby-progressbar/time_spec.rb +18 -10
  34. data/spec/ruby-progressbar/timer_spec.rb +2 -2
  35. data/spec/spec_helper.rb +1 -1
  36. data/spec/support/time.rb +2 -6
  37. metadata +36 -27
  38. metadata.gz.sig +1 -0
  39. data/LICENSE +0 -22
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: aaa7c9d09b31699a0a0c691ff78cd1ad04a0d713
4
- data.tar.gz: 78cf941aaf62befd7ba3c78bddb928e565f758ed
3
+ metadata.gz: 606a4e3b06bf9d08347c6c8c01037b5f8ef3bf09
4
+ data.tar.gz: 25c6bab28e08070dd601a4247b286d9d70a9fc52
5
5
  SHA512:
6
- metadata.gz: b86096eca7c31d2a85692000180440289b56abda2ab04044ae488c44ceddf6fc662bb1894eab7633717df0f5c5d7d1605b8daac4c5f8d9dddf91bbbfa7fa6582
7
- data.tar.gz: 5fe2dca98cf016eb5455a3e5496f068b36c41978024315558bc4a6703e6329cfd9b2536fce47895f2478d84e91fd4a419f7d321b193b9fc7321d9eda121069c0
6
+ metadata.gz: 967e83539bc0cb7fa68ccd274ef396d8a8e027df2c6c4c072c1063e51b1dbda8ca5bd3fa7af11ba015f758281e7715ca8f5fbc1e03991b5fd05b81d4887230e4
7
+ data.tar.gz: 21b358e4e19060b99490b57bf0ce8f39bc8119c4637030df12e6622e3a18d2771fb02b6a339ade460bb330daf4069c217098edd98a9fd6a9cc21ab92e0988ce0
@@ -0,0 +1,3 @@
1
+ ���m��Q�P5TLA�n�4{D89g���iLygT�j�غ��.�~Y֛�cd������&qnvu~4�d��=�3�D/#}��G<L
2
+ �J0���m�>��o��f�5��G�"�aAϋ�/Qz�����϶���g��-w��E���c���VЏҰp�nE ?�玢H/�\S��o���8�s%fy%��+��; 5δ�:,�8��`��NfЎ
3
+ 84���6O8�Zv���Г�0z폭,^�����I�@��
@@ -0,0 +1,2 @@
1
+ l��%Gg#@�R��C�9���.@�5�f=O�9����+)F���r` /O.�N�|G�VO��U�W��#3�D%�G��gGg�-s�=����IlE�P��.����{V^��Pn��I�i�.[��-�;�$7�DL��%�����^��N,�w����O��7?A%�)�@J����
2
+ ��鬗��j�tw��ح��cIu�����,�90��\}�k ��r���P�u���J�f�,l5�� ��F>}�B<
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2010-2016 The Kompanee, Ltd
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in
11
+ all copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ THE SOFTWARE.
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  Ruby/ProgressBar
2
2
  ================================
3
- [![Build Status](https://secure.travis-ci.org/jfelchner/ruby-progressbar.png?branch=master)](http://travis-ci.org/jfelchner/ruby-progressbar) [![Code Climate](https://codeclimate.com/github/jfelchner/ruby-progressbar.png)](https://codeclimate.com/github/jfelchner/ruby-progressbar) [![Code Climate](https://codeclimate.com/github/jfelchner/ruby-progressbar/coverage.png)](https://codeclimate.com/github/jfelchner/ruby-progressbar)
3
+ [![Gem Version](https://img.shields.io/gem/v/ruby-progressbar.svg)](https://rubygems.org/gems/ruby-progressbar) ![Rubygems Rank Overall](https://img.shields.io/gem/rt/ruby-progressbar.svg) ![Rubygems Rank Daily](https://img.shields.io/gem/rd/ruby-progressbar.svg) ![Rubygems Downloads](https://img.shields.io/gem/dv/ruby-progressbar/stable.svg) [![Build Status](https://img.shields.io/travis/jfelchner/ruby-progressbar/master.svg)](http://travis-ci.org/jfelchner/ruby-progressbar) [![Code Climate](https://codeclimate.com/github/jfelchner/ruby-progressbar.svg)](https://codeclimate.com/github/jfelchner/ruby-progressbar) [![Code Climate](https://codeclimate.com/github/jfelchner/ruby-progressbar/coverage.svg)](https://codeclimate.com/github/jfelchner/ruby-progressbar)
4
4
 
5
5
  <img src="https://www.dropbox.com/s/pe9o1yobxtubof8/ruby-progressbar-cage.png?dl=1" align="right" />
6
6
 
@@ -15,6 +15,8 @@ Full Reference
15
15
 
16
16
  There's gotten to be too much awesome to pack into one page. Visit the [wiki](https://github.com/jfelchner/ruby-progressbar/wiki) for the full documentation.
17
17
 
18
+ Here's a [quick link](https://github.com/jfelchner/ruby-progressbar/wiki/Basic-Usage) to the 'Basic Usage' section.
19
+
18
20
  Issues
19
21
  --------------------------------
20
22
 
@@ -32,5 +34,5 @@ The names and logos for The Kompanee are trademarks of The Kompanee, Ltd.
32
34
  License
33
35
  --------------------------------
34
36
 
35
- ruby-progressbar 1.0 is Copyright &copy; 2011-2014 The Kompanee. It is free software, and may be redistributed under the terms specified in the LICENSE file.
37
+ ruby-progressbar 1.0 is Copyright &copy; 2011-2016 The Kompanee. It is free software, and may be redistributed under the terms specified in the LICENSE file.
36
38
  ruby-progressbar 0.9.0 is Copyright &copy; 2008 [Satoru Takabayashi](http://namazu.org/~satoru/)
@@ -13,7 +13,6 @@ class Base
13
13
  :progress,
14
14
  :total
15
15
 
16
- # rubocop:disable Metrics/AbcSize
17
16
  def initialize(options = {})
18
17
  self.autostart = options.fetch(:autostart, true)
19
18
  self.autofinish = options.fetch(:autofinish, true)
@@ -36,7 +35,6 @@ class Base
36
35
 
37
36
  start :at => options[:starting_at] if autostart
38
37
  end
39
- # rubocop:enable Metrics/AbcSize
40
38
 
41
39
  def start(options = {})
42
40
  clear
@@ -77,7 +75,7 @@ class Base
77
75
  timer.stopped? || finished?
78
76
  end
79
77
 
80
- alias_method :paused?, :stopped?
78
+ alias paused? stopped?
81
79
 
82
80
  def finished?
83
81
  finished || (autofinish && progressable.finished?)
@@ -135,7 +133,7 @@ class Base
135
133
  end
136
134
  end
137
135
 
138
- alias_method :format, :format=
136
+ alias format format=
139
137
 
140
138
  protected
141
139
 
@@ -153,7 +151,7 @@ class Base
153
151
 
154
152
  def update_progress(*args)
155
153
  output.with_refresh do
156
- progressable.send(*args)
154
+ progressable.__send__(*args)
157
155
  timer.stop if finished?
158
156
  end
159
157
  end
@@ -46,6 +46,7 @@ class Length
46
46
  80
47
47
  end
48
48
 
49
+ # rubocop:disable Lint/DuplicateMethods
49
50
  begin
50
51
  require 'io/console'
51
52
 
@@ -4,9 +4,9 @@
4
4
  class ProgressBar
5
5
  module Components
6
6
  class Bar
7
- DEFAULT_PROGRESS_MARK = '='
8
- DEFAULT_REMAINDER_MARK = ' '
9
- DEFAULT_UPA_STEPS = ['=---', '-=--', '--=-', '---=']
7
+ DEFAULT_PROGRESS_MARK = '='.freeze
8
+ DEFAULT_REMAINDER_MARK = ' '.freeze
9
+ DEFAULT_UPA_STEPS = ['=---', '-=--', '--=-', '---='].freeze
10
10
 
11
11
  attr_accessor :progress_mark,
12
12
  :remainder_mark,
@@ -4,14 +4,14 @@
4
4
  class ProgressBar
5
5
  module Components
6
6
  class Time
7
- TIME_FORMAT = '%02d:%02d:%02d'
8
- OOB_TIME_FORMATS = [:unknown, :friendly, nil]
7
+ TIME_FORMAT = '%02d:%02d:%02d'.freeze
8
+ OOB_TIME_FORMATS = [:unknown, :friendly, nil].freeze
9
9
  OOB_LIMIT_IN_HOURS = 99
10
- OOB_UNKNOWN_TIME_TEXT = '??:??:??'
11
- OOB_FRIENDLY_TIME_TEXT = '> 4 Days'
12
- NO_TIME_ELAPSED_TEXT = '--:--:--'
13
- ESTIMATED_LABEL = ' ETA'
14
- ELAPSED_LABEL = 'Time'
10
+ OOB_UNKNOWN_TIME_TEXT = '??:??:??'.freeze
11
+ OOB_FRIENDLY_TIME_TEXT = '> 4 Days'.freeze
12
+ NO_TIME_ELAPSED_TEXT = '--:--:--'.freeze
13
+ ESTIMATED_LABEL = ' ETA'.freeze
14
+ ELAPSED_LABEL = 'Time'.freeze
15
15
 
16
16
  def initialize(options = {})
17
17
  self.out_of_bounds_time_format = options[:out_of_bounds_time_format]
@@ -1,7 +1,7 @@
1
1
  class ProgressBar
2
2
  module Components
3
3
  class Title
4
- DEFAULT_TITLE = 'Progress'
4
+ DEFAULT_TITLE = 'Progress'.freeze
5
5
 
6
6
  attr_accessor :title
7
7
 
@@ -20,9 +20,9 @@ class Molecule
20
20
  :i => [:bar, :incomplete_space],
21
21
  :r => [:rate, :rate_of_change],
22
22
  :R => [:rate, :rate_of_change_with_precision],
23
- }
23
+ }.freeze
24
24
 
25
- BAR_MOLECULES = %w{w B b i}
25
+ BAR_MOLECULES = %w{w B b i}.freeze
26
26
 
27
27
  attr_accessor :key,
28
28
  :method_name
@@ -45,12 +45,12 @@ class Molecule
45
45
  end
46
46
 
47
47
  def lookup_value(environment, length = 0)
48
- component = environment.send(method_name[0])
48
+ component = environment.__send__(method_name[0])
49
49
 
50
50
  if bar_molecule?
51
- component.send(method_name[1], length).to_s
51
+ component.__send__(method_name[1], length).to_s
52
52
  else
53
- component.send(method_name[1]).to_s
53
+ component.__send__(method_name[1]).to_s
54
54
  end
55
55
  end
56
56
  end
@@ -3,7 +3,7 @@ require 'ruby-progressbar/output'
3
3
  class ProgressBar
4
4
  module Outputs
5
5
  class NonTty < Output
6
- DEFAULT_FORMAT_STRING = '%t: |%b|'
6
+ DEFAULT_FORMAT_STRING = '%t: |%b|'.freeze
7
7
 
8
8
  def clear
9
9
  self.last_update_length = 0
@@ -3,9 +3,9 @@ require 'ruby-progressbar/output'
3
3
  class ProgressBar
4
4
  module Outputs
5
5
  class Tty < Output
6
- DEFAULT_FORMAT_STRING = '%t: |%B|'
6
+ DEFAULT_FORMAT_STRING = '%t: |%B|'.freeze
7
7
 
8
- alias_method :refresh_with_format_change, :with_refresh
8
+ alias refresh_with_format_change with_refresh
9
9
 
10
10
  def clear
11
11
  stream.print clear_string
@@ -23,11 +23,11 @@ class Progress
23
23
  def start(options = {})
24
24
  self.running_average = 0
25
25
  self.progress = \
26
- self.starting_position = options[:at] || progress
26
+ self.starting_position = options[:at] || progress
27
27
  end
28
28
 
29
29
  def finish
30
- self.progress = total
30
+ self.progress = total unless unknown?
31
31
  end
32
32
 
33
33
  def finished?
@@ -36,16 +36,16 @@ class Progress
36
36
 
37
37
  def increment
38
38
  warn "WARNING: Your progress bar is currently at #{progress} out of #{total} " \
39
- 'and cannot be incremented. In v2.0.0 this will become a ' \
40
- 'ProgressBar::InvalidProgressError.' if progress == total
39
+ "and cannot be incremented. In v2.0.0 this will become a " \
40
+ "ProgressBar::InvalidProgressError." if progress == total
41
41
 
42
42
  self.progress += 1 unless progress == total
43
43
  end
44
44
 
45
45
  def decrement
46
46
  warn "WARNING: Your progress bar is currently at #{progress} out of #{total} " \
47
- 'and cannot be decremented. In v2.0.0 this will become a ' \
48
- 'ProgressBar::InvalidProgressError.' if progress == 0
47
+ "and cannot be decremented. In v2.0.0 this will become a " \
48
+ "ProgressBar::InvalidProgressError." if progress == 0
49
49
 
50
50
  self.progress -= 1 unless progress == 0
51
51
  end
@@ -101,7 +101,7 @@ class Progress
101
101
  return 100.0 if total == 0
102
102
  return 0.0 if total.nil?
103
103
 
104
- '%5.2f' % [(progress.to_f * 100.0 / total * 100.0).floor / 100.0]
104
+ '%5.2f' % [(progress * 100 / total.to_f * 100).floor / 100.0]
105
105
  end
106
106
 
107
107
  def absolute
@@ -1,25 +1,30 @@
1
1
  class ProgressBar
2
2
  class Time
3
- def self.now(time = ::Time)
4
- @time = time
3
+ TIME_MOCKING_LIBRARY_METHODS = [
4
+ :__simple_stub__now, # ActiveSupport
5
+ :now_without_mock_time, # Timecop
6
+ :now_without_delorean, # Delorean
7
+ :now # Actual
8
+ ].freeze
5
9
 
6
- @time.send unmocked_time_method
10
+ def initialize(time = ::Time)
11
+ self.time = time
7
12
  end
8
13
 
9
- def self.unmocked_time_method
14
+ def now
15
+ time.__send__ unmocked_time_method
16
+ end
17
+
18
+ def unmocked_time_method
10
19
  @unmocked_time_method ||= begin
11
- time_mocking_library_methods.find do |method|
12
- @time.respond_to? method
20
+ TIME_MOCKING_LIBRARY_METHODS.find do |method|
21
+ time.respond_to? method
13
22
  end
14
23
  end
15
24
  end
16
25
 
17
- def self.time_mocking_library_methods
18
- [
19
- :now_without_mock_time, # Timecop
20
- :now_without_delorean, # Delorean
21
- :now # Actual
22
- ]
23
- end
26
+ protected
27
+
28
+ attr_accessor :time
24
29
  end
25
30
  end
@@ -6,7 +6,7 @@ class Timer
6
6
  :stopped_at
7
7
 
8
8
  def initialize(options = {})
9
- self.time = options[:time] || Time
9
+ self.time = options[:time] || Time.new
10
10
  end
11
11
 
12
12
  def start
@@ -1,3 +1,3 @@
1
- class ProgressBar
2
- VERSION = '1.7.5'
1
+ class ProgressBar
2
+ VERSION = '1.8.0'.freeze
3
3
  end
@@ -2,8 +2,8 @@ require 'spec_helper'
2
2
  require 'support/time'
3
3
  require 'stringio'
4
4
 
5
- # rubocop:disable Metrics/LineLength
6
- describe ProgressBar::Base do
5
+ # rubocop:disable Metrics/LineLength, Style/UnneededInterpolation, Performance/EndWith
6
+ RSpec.describe ProgressBar::Base do
7
7
  let(:output) do
8
8
  StringIO.new('', 'w+').tap do |io|
9
9
  allow(io).to receive(:tty?).and_return true
@@ -418,7 +418,7 @@ describe ProgressBar::Base do
418
418
  end
419
419
 
420
420
  context 'when a bar is started' do
421
- let(:progressbar) { ProgressBar::Base.new(:starting_at => 0, :total => 100, :output => output, :length => 80, :throttle_rate => 0.0) }
421
+ let(:progressbar) { ProgressBar::Base.new(:starting_at => 0, :total => 100, :output => output, :length => 80, :throttle_rate => 0.0) }
422
422
 
423
423
  context 'and it is incremented any number of times' do
424
424
  before { 10.times { progressbar.increment } }
@@ -1,9 +1,9 @@
1
1
  require 'rspectacular'
2
2
  require 'ruby-progressbar/calculators/running_average'
3
3
 
4
- class ProgressBar
5
- module Calculators
6
- describe RunningAverage do
4
+ class ProgressBar
5
+ module Calculators
6
+ RSpec.describe RunningAverage do
7
7
  it 'can properly calculate a running average' do
8
8
  first_average = RunningAverage.calculate(4.5, 12, 0.1)
9
9
  expect(first_average).to be_within(0.001).of 11.25
@@ -1,9 +1,9 @@
1
1
  require 'rspectacular'
2
2
  require 'ruby-progressbar/components/bar'
3
3
 
4
- class ProgressBar
5
- module Components
6
- describe Bar do
4
+ class ProgressBar
5
+ module Components
6
+ RSpec.describe Bar do
7
7
  it 'has a default mark when a new bar is created and no parameters are passed' do
8
8
  expect(Bar.new.progress_mark).to eql Bar::DEFAULT_PROGRESS_MARK
9
9
  end
@@ -1,9 +1,9 @@
1
1
  require 'rspectacular'
2
2
  require 'ruby-progressbar/components/percentage'
3
3
 
4
- class ProgressBar
5
- module Components
6
- describe Percentage do
4
+ class ProgressBar
5
+ module Components
6
+ RSpec.describe Percentage do
7
7
  end
8
8
  end
9
9
  end
@@ -1,9 +1,9 @@
1
1
  require 'rspectacular'
2
2
  require 'ruby-progressbar/components/rate'
3
3
 
4
- class ProgressBar
5
- module Components
6
- describe Rate do
4
+ class ProgressBar
5
+ module Components
6
+ RSpec.describe Rate do
7
7
  end
8
8
  end
9
9
  end
@@ -1,8 +1,8 @@
1
1
  require 'rspectacular'
2
2
  require 'ruby-progressbar/progress'
3
3
 
4
- class ProgressBar
5
- describe Throttle do
4
+ class ProgressBar
5
+ RSpec.describe Throttle do
6
6
  let(:timer) { ProgressBar::Timer.new(:time => ::Time) }
7
7
 
8
8
  it 'yields the first time if the throttle rate is given and the timer is not started' do
@@ -1,9 +1,9 @@
1
1
  require 'rspectacular'
2
2
  require 'ruby-progressbar/components/time'
3
3
 
4
- class ProgressBar
5
- module Components
6
- describe Time do
4
+ class ProgressBar
5
+ module Components
6
+ RSpec.describe Time do
7
7
  let(:timer) { Timer.new(:time => ::Time) }
8
8
 
9
9
  it 'displays an unknown estimated time remaining when the timer has been started ' \
@@ -226,7 +226,8 @@ describe Time do
226
226
  ' ETA: 00:00:01',
227
227
  ' ETA: 00:00:01',
228
228
  ' ETA: 00:00:00',
229
- ])
229
+ ]
230
+ )
230
231
  end
231
232
 
232
233
  it 'displays unknown elapsed time when the timer has not been started' do
@@ -297,9 +298,7 @@ describe Time do
297
298
  end
298
299
 
299
300
  it 'raises an exception when an invalid out of bounds time format is specified' do
300
- expect do
301
- Time.new(:out_of_bounds_time_format => :foo)
302
- end.
301
+ expect { Time.new(:out_of_bounds_time_format => :foo) }.
303
302
  to raise_error 'Invalid Out Of Bounds time format. Valid formats are ' \
304
303
  '[:unknown, :friendly, nil]'
305
304
  end
@@ -1,9 +1,9 @@
1
1
  require 'rspectacular'
2
2
  require 'ruby-progressbar/components/title'
3
3
 
4
- class ProgressBar
5
- module Components
6
- describe Title do
4
+ class ProgressBar
5
+ module Components
6
+ RSpec.describe Title do
7
7
  it 'can use the default title if none is specified' do
8
8
  expect(Title.new.title).to eql Title::DEFAULT_TITLE
9
9
  end
@@ -1,9 +1,9 @@
1
1
  require 'rspectacular'
2
2
  require 'ruby-progressbar/format/formatter'
3
3
 
4
- class ProgressBar
5
- module Format
6
- describe Formatter do
4
+ class ProgressBar
5
+ module Format
6
+ RSpec.describe Formatter do
7
7
  end
8
8
  end
9
9
  end
@@ -1,9 +1,9 @@
1
1
  require 'rspectacular'
2
2
  require 'ruby-progressbar/format/molecule'
3
3
 
4
- class ProgressBar
5
- module Format
6
- describe Molecule do
4
+ class ProgressBar
5
+ module Format
6
+ RSpec.describe Molecule do
7
7
  it 'sets the key when initialized' do
8
8
  molecule = Molecule.new('t')
9
9
 
@@ -1,9 +1,9 @@
1
1
  require 'rspectacular'
2
2
  require 'ruby-progressbar/format/string'
3
3
 
4
- class ProgressBar
5
- module Format
6
- describe String do
4
+ class ProgressBar
5
+ module Format
6
+ RSpec.describe String do
7
7
  end
8
8
  end
9
9
  end
@@ -1,7 +1,7 @@
1
1
  require 'rspectacular'
2
2
  require 'ruby-progressbar/output'
3
3
 
4
- class ProgressBar
5
- describe Output do
4
+ class ProgressBar
5
+ RSpec.describe Output do
6
6
  end
7
7
  end
@@ -1,9 +1,9 @@
1
1
  require 'rspectacular'
2
2
  require 'ruby-progressbar/outputs/non_tty'
3
3
 
4
- class ProgressBar
5
- module Outputs
6
- describe NonTty do
4
+ class ProgressBar
5
+ module Outputs
6
+ RSpec.describe NonTty do
7
7
  end
8
8
  end
9
9
  end
@@ -1,9 +1,9 @@
1
1
  require 'rspectacular'
2
2
  require 'ruby-progressbar/outputs/tty'
3
3
 
4
- class ProgressBar
5
- module Outputs
6
- describe Tty do
4
+ class ProgressBar
5
+ module Outputs
6
+ RSpec.describe Tty do
7
7
  end
8
8
  end
9
9
  end
@@ -1,8 +1,8 @@
1
1
  require 'rspectacular'
2
2
  require 'ruby-progressbar/progress'
3
3
 
4
- class ProgressBar
5
- describe Progress do
4
+ class ProgressBar
5
+ RSpec.describe Progress do
6
6
  it 'knows the default total when no parameters are passed' do
7
7
  progress = Progress.new
8
8
 
@@ -37,6 +37,12 @@ describe Progress do
37
37
  expect(progress.progress).to eql 10
38
38
  end
39
39
 
40
+ it 'knows how to finish itself even if the total is unknown' do
41
+ progress = Progress.new :total => nil
42
+
43
+ expect(progress.finish).to be_nil
44
+ end
45
+
40
46
  it 'knows the overridden total when the total is passed in' do
41
47
  progress = Progress.new(:total => 12,
42
48
  :progress_mark => 'x',
@@ -1,37 +1,45 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  class TimeMockedWithTimecop
4
- def self.now; end
5
4
  def self.now_without_mock_time; end
6
5
  end
7
6
 
8
7
  class TimeMockedWithDelorean
9
- def self.now; end
10
8
  def self.now_without_delorean; end
11
9
  end
12
10
 
11
+ class TimeMockedWithActiveSupport
12
+ def self.__simple_stub__now; end
13
+ end
14
+
13
15
  class UnmockedTime
14
16
  def self.now; end
15
17
  end
16
18
 
17
- class ProgressBar
18
- describe Time do
19
+ class ProgressBar
20
+ RSpec.describe Time do
19
21
  it 'when Time is being mocked by Timecop retrieves the unmocked Timecop time' do
20
- allow(TimeMockedWithTimecop).to receive(:now_without_mock_time).once
22
+ expect(TimeMockedWithTimecop).to receive(:now_without_mock_time).once
21
23
 
22
- Time.now(TimeMockedWithTimecop)
24
+ Time.new(TimeMockedWithTimecop).now
23
25
  end
24
26
 
25
27
  it 'when Time is being mocked by Delorean retrieves the unmocked Delorean time' do
26
- allow(TimeMockedWithDelorean).to receive(:now_without_delorean).once
28
+ expect(TimeMockedWithDelorean).to receive(:now_without_delorean).once
29
+
30
+ Time.new(TimeMockedWithDelorean).now
31
+ end
32
+
33
+ it 'when Time is being mocked by ActiveSupport retrieves the unmocked time' do
34
+ expect(TimeMockedWithActiveSupport).to receive(:__simple_stub__now).once
27
35
 
28
- Time.now(TimeMockedWithDelorean)
36
+ Time.new(TimeMockedWithActiveSupport).now
29
37
  end
30
38
 
31
39
  it 'when Time is not being mocked will return the actual time' do
32
- allow(UnmockedTime).to receive(:now).once
40
+ expect(UnmockedTime).to receive(:now).once
33
41
 
34
- Time.now(UnmockedTime)
42
+ Time.new(UnmockedTime).now
35
43
  end
36
44
  end
37
45
  end
@@ -1,7 +1,7 @@
1
1
  require 'rspectacular'
2
2
  require 'ruby-progressbar/timer'
3
3
 
4
- class ProgressBar
5
- describe Timer do
4
+ class ProgressBar
5
+ RSpec.describe Timer do
6
6
  end
7
7
  end
@@ -1,5 +1,5 @@
1
1
  require 'rspectacular'
2
- require 'warning_filter'
2
+ require 'warning_filter' if Kernel.respond_to?(:require_relative)
3
3
 
4
4
  RSpec.configure do |config|
5
5
  config.warnings = true
@@ -10,12 +10,8 @@ end
10
10
 
11
11
  class ProgressBar
12
12
  class Time
13
- class << self
14
- alias_method :old_now, :now
15
-
16
- def now(time = ::PBTimeTester)
17
- old_now(time)
18
- end
13
+ def initialize(time = ::PBTimeTester)
14
+ self.time = time
19
15
  end
20
16
  end
21
17
  end
metadata CHANGED
@@ -1,15 +1,38 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-progressbar
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.5
4
+ version: 1.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - thekompanee
8
8
  - jfelchner
9
9
  autorequire:
10
10
  bindir: bin
11
- cert_chain: []
12
- date: 2015-03-25 00:00:00.000000000 Z
11
+ cert_chain:
12
+ - |
13
+ -----BEGIN CERTIFICATE-----
14
+ MIIDrjCCApagAwIBAgIBATANBgkqhkiG9w0BAQUFADBOMRowGAYDVQQDDBFhY2Nv
15
+ dW50c19ydWJ5Z2VtczEbMBkGCgmSJomT8ixkARkWC3RoZWtvbXBhbmVlMRMwEQYK
16
+ CZImiZPyLGQBGRYDY29tMB4XDTE2MDQyNDAyNTEyM1oXDTE3MDQyNDAyNTEyM1ow
17
+ TjEaMBgGA1UEAwwRYWNjb3VudHNfcnVieWdlbXMxGzAZBgoJkiaJk/IsZAEZFgt0
18
+ aGVrb21wYW5lZTETMBEGCgmSJomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEB
19
+ BQADggEPADCCAQoCggEBANklzdaVeHtut6LTe/hrl6Krz2Z60InEbNb+TMG43tww
20
+ jBpWZrdU/SBkR3EYbTAQv/yGTuMHoVKGK2kDlFvdofW2hX0d14qPyYJUNYt+7VWE
21
+ 3UhPSxw1i6MxeU1QwfkIyaN8A5lj0225+rwI/mbplv+lSXPlJEroCQ9EfniZD4jL
22
+ URlrHWl/UejcQ32C1IzBwth3+nacrO1197v5nSdozFzQwm4groaggXn9F/WpThu+
23
+ MhcE4bfttwEjAfU3zAThyzOFoVPpACP+SwOuyPJSl02+9BiwzeAnFJDfge7+rsd5
24
+ 64W/VzBIklEKUZMmxZwr5DwpSXLrknBDtHLABG9Nr3cCAwEAAaOBljCBkzAJBgNV
25
+ HRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUP7v0f/qfa0LMrhkzHRI3l10X
26
+ LYIwLAYDVR0RBCUwI4EhYWNjb3VudHMrcnVieWdlbXNAdGhla29tcGFuZWUuY29t
27
+ MCwGA1UdEgQlMCOBIWFjY291bnRzK3J1YnlnZW1zQHRoZWtvbXBhbmVlLmNvbTAN
28
+ BgkqhkiG9w0BAQUFAAOCAQEASqdfJKMun1twosHfvdDH7Vgrb5VqX28qJ6MgnhjF
29
+ p+3HYTjYo/KMQqu78TegUFO5xQ4oumU0FTXADW0ryXZvUGV74M0zwqpFqeo8onII
30
+ lsVsWdMCLZS21M0uCQmcV+OQMNxL8jV3c0D3x9Srr9yO4oamW3seIdb+b9RfhmV2
31
+ ryr+NH8U/4xgzdJ4hWV4qk93nwigp4lwJ4u93XJ7Cdyw7itvaEPnn8HpCfzsiLcw
32
+ QwSfDGz6+zsImi5N3UT71+mk7YcviQSgvMRl3VkAv8MZ6wcJ5SQRpf9w0OeFH6Ln
33
+ nNbCoHiYeXX/lz/M6AIbxDIZZTwxcyvF7bdrQ2fbH5MsfQ==
34
+ -----END CERTIFICATE-----
35
+ date: 2016-04-24 00:00:00.000000000 Z
13
36
  dependencies:
14
37
  - !ruby/object:Gem::Dependency
15
38
  name: rspec
@@ -17,28 +40,28 @@ dependencies:
17
40
  requirements:
18
41
  - - "~>"
19
42
  - !ruby/object:Gem::Version
20
- version: '3.1'
43
+ version: '3.2'
21
44
  type: :development
22
45
  prerelease: false
23
46
  version_requirements: !ruby/object:Gem::Requirement
24
47
  requirements:
25
48
  - - "~>"
26
49
  - !ruby/object:Gem::Version
27
- version: '3.1'
50
+ version: '3.2'
28
51
  - !ruby/object:Gem::Dependency
29
52
  name: rspectacular
30
53
  requirement: !ruby/object:Gem::Requirement
31
54
  requirements:
32
55
  - - "~>"
33
56
  - !ruby/object:Gem::Version
34
- version: 0.21.6
57
+ version: 0.70.6
35
58
  type: :development
36
59
  prerelease: false
37
60
  version_requirements: !ruby/object:Gem::Requirement
38
61
  requirements:
39
62
  - - "~>"
40
63
  - !ruby/object:Gem::Version
41
- version: 0.21.6
64
+ version: 0.70.6
42
65
  - !ruby/object:Gem::Dependency
43
66
  name: fuubar
44
67
  requirement: !ruby/object:Gem::Requirement
@@ -71,30 +94,16 @@ dependencies:
71
94
  name: timecop
72
95
  requirement: !ruby/object:Gem::Requirement
73
96
  requirements:
74
- - - "~>"
97
+ - - '='
75
98
  - !ruby/object:Gem::Version
76
- version: 0.6.0
99
+ version: 0.6.1
77
100
  type: :development
78
101
  prerelease: false
79
102
  version_requirements: !ruby/object:Gem::Requirement
80
103
  requirements:
81
- - - "~>"
82
- - !ruby/object:Gem::Version
83
- version: 0.6.0
84
- - !ruby/object:Gem::Dependency
85
- name: codeclimate-test-reporter
86
- requirement: !ruby/object:Gem::Requirement
87
- requirements:
88
- - - "~>"
89
- - !ruby/object:Gem::Version
90
- version: 0.3.0
91
- type: :development
92
- prerelease: false
93
- version_requirements: !ruby/object:Gem::Requirement
94
- requirements:
95
- - - "~>"
104
+ - - '='
96
105
  - !ruby/object:Gem::Version
97
- version: 0.3.0
106
+ version: 0.6.1
98
107
  description: |
99
108
  Ruby/ProgressBar is an extremely flexible text progress bar library for Ruby.
100
109
  The output can be customized with a flexible formatting system including:
@@ -104,7 +113,7 @@ executables: []
104
113
  extensions: []
105
114
  extra_rdoc_files: []
106
115
  files:
107
- - LICENSE
116
+ - LICENSE.txt
108
117
  - README.md
109
118
  - Rakefile
110
119
  - lib/ruby-progressbar.rb
@@ -171,7 +180,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
171
180
  version: '0'
172
181
  requirements: []
173
182
  rubyforge_project:
174
- rubygems_version: 2.4.6
183
+ rubygems_version: 2.5.1
175
184
  signing_key:
176
185
  specification_version: 4
177
186
  summary: Ruby/ProgressBar is a flexible text progress bar library for Ruby.
@@ -0,0 +1 @@
1
+ q7�r?-z��� � ��H���||py�Q��Y��B�|b�1���V�dQO�N���/0�7!�{k���2N *���R��kc��fq��в���a*��=�M`�fg�(ȫ1� )�R�h�;����p�w�ĩ���`��1�.K���d�
data/LICENSE DELETED
@@ -1,22 +0,0 @@
1
- (The MIT License)
2
-
3
- Copyright (c) 2011 The Kompanee - Jeff Felchner
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining
6
- a copy of this software and associated documentation files (the
7
- "Software"), to deal in the Software without restriction, including
8
- without limitation the rights to use, copy, modify, merge, publish,
9
- distribute, sublicense, and/or sell copies of the Software, and to
10
- permit persons to whom the Software is furnished to do so, subject to
11
- the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be
14
- included in all copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
20
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.