Skip to content

Commit

Permalink
Refactor: Rename Calculators To Projectors
Browse files Browse the repository at this point in the history
Why This Change Is Necessary
========================================================================

Now that the calculator is responsible for more than just a single
`calculate` method, it is being renamed to something more appropriate
for its task.

What These Changes Do To Address the Issue
========================================================================

Rename and move the files for the `SmoothedAverage` class.

Side Effects Caused By This Change
========================================================================

None expected.
  • Loading branch information
jfelchner committed Mar 4, 2023
1 parent e1e7f0c commit c914747
Show file tree
Hide file tree
Showing 8 changed files with 62 additions and 62 deletions.
6 changes: 3 additions & 3 deletions lib/ruby-progressbar/projector.rb
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
require 'ruby-progressbar/calculators/smoothed_average'
require 'ruby-progressbar/projectors/smoothed_average'

class ProgressBar
class Projector
DEFAULT_PROJECTOR = ProgressBar::Calculators::SmoothedAverage
DEFAULT_PROJECTOR = ProgressBar::Projectors::SmoothedAverage
NAME_TO_PROJECTOR_MAP = {
'smoothed' => ProgressBar::Calculators::SmoothedAverage
'smoothed' => ProgressBar::Projectors::SmoothedAverage
}.freeze

def self.from_type(name)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
class ProgressBar
module Calculators
module Projectors
class SmoothedAverage
DEFAULT_STRENGTH = 0.1
DEFAULT_BEGINNING_POSITION = 0
Expand Down
44 changes: 22 additions & 22 deletions spec/lib/ruby-progressbar/components/bar_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ module Components

describe '#bar' do
it 'displays the bar with no indication of progress when just begun' do
projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => 50)
progressbar = Bar.new(:progress => progress,
:length => 100)
Expand All @@ -41,7 +41,7 @@ module Components

it 'displays the bar with an indication of progress when nothing has been ' \
'completed and the bar is incremented' do
projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => 50)
progressbar = Bar.new(:progress => progress,
:length => 100)
Expand All @@ -53,7 +53,7 @@ module Components

it 'displays the bar with no indication of progress when a fraction of a percentage ' \
'has been completed' do
projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => 200)
progressbar = Bar.new(:progress => progress,
:length => 100)
Expand All @@ -64,7 +64,7 @@ module Components
end

it 'displays the bar as 100% complete when completed' do
projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => 50)
progressbar = Bar.new(:progress => progress,
:length => 100)
Expand All @@ -76,7 +76,7 @@ module Components
end

it 'displays the bar as 98% complete when completed and the bar is decremented' do
projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => 50)
progressbar = Bar.new(:progress => progress,
:length => 100)
Expand All @@ -90,7 +90,7 @@ module Components

describe '#bar_with_percentage' do
it 'displays the bar with an integrated percentage properly when empty' do
projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => 100)
progressbar = Bar.new(:progress => progress,
:length => 100)
Expand All @@ -101,7 +101,7 @@ module Components

it 'displays the bar with an integrated percentage properly just before' \
'the percentage is displayed' do
projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => 100)
progressbar = Bar.new(:progress => progress,
:length => 100)
Expand All @@ -114,7 +114,7 @@ module Components

it 'displays the bar with an integrated percentage properly immediately after' \
'the percentage is displayed' do
projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => 100)
progressbar = Bar.new(:progress => progress,
:length => 100)
Expand All @@ -127,7 +127,7 @@ module Components

it 'displays the bar with an integrated percentage properly on double digit' \
'percentage' do
projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => 100)
progressbar = Bar.new(:progress => progress,
:length => 100)
Expand All @@ -139,7 +139,7 @@ module Components
end

it 'displays the bar with an integrated percentage properly when finished' do
projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => 100)
progressbar = Bar.new(:progress => progress,
:length => 100)
Expand All @@ -151,7 +151,7 @@ module Components

it 'calculates the remaining negative space properly with an integrated percentage ' \
'bar of 0 percent' do
projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => 200)
progressbar = Bar.new(:progress => progress,
:length => 100)
Expand All @@ -173,7 +173,7 @@ module Components

describe '#incomplete_space' do
it 'displays the bar with an integrated percentage properly when empty' do
projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => 100)
progressbar = Bar.new(:progress => progress,
:length => 100)
Expand All @@ -184,7 +184,7 @@ module Components

it 'displays the bar with an integrated percentage properly just before' \
'the percentage is displayed' do
projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => 100)
progressbar = Bar.new(:progress => progress,
:length => 100)
Expand All @@ -197,7 +197,7 @@ module Components

it 'displays the bar with an integrated percentage properly immediately after' \
'the percentage is displayed' do
projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => 100)
progressbar = Bar.new(:progress => progress,
:length => 100)
Expand All @@ -210,7 +210,7 @@ module Components

it 'displays the bar with an integrated percentage properly on double digit' \
'percentage' do
projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => 100)
progressbar = Bar.new(:progress => progress,
:length => 100)
Expand All @@ -222,7 +222,7 @@ module Components
end

it 'displays the bar with an integrated percentage properly when finished' do
projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => 100)
progressbar = Bar.new(:progress => progress,
:length => 100)
Expand All @@ -234,7 +234,7 @@ module Components

it 'calculates the remaining negative space properly with an integrated percentage ' \
'bar of 0 percent' do
projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => 200)
progressbar = Bar.new(:progress => progress,
:length => 100)
Expand All @@ -254,7 +254,7 @@ module Components
end

it 'is represented correctly when a bar has an unknown amount to completion' do
projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => nil)
progressbar = Bar.new(:progress => progress,
:length => 80)
Expand All @@ -265,7 +265,7 @@ module Components

it 'is represented after being incremented once when a bar has an unknown amount ' \
'to completion' do
projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => nil)
progressbar = Bar.new(:progress => progress,
:length => 80)
Expand All @@ -278,7 +278,7 @@ module Components

it 'is represented after being incremented twice when a bar has an unknown amount ' \
'to completion' do
projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => nil)
progressbar = Bar.new(:progress => progress,
:length => 80)
Expand All @@ -290,7 +290,7 @@ module Components
end

it 'is represented correctly when a bar has a customized unknown animation' do
projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => nil)
progressbar = Bar.new(:progress => progress,
:unknown_progress_animation_steps => [
Expand All @@ -307,7 +307,7 @@ module Components

it 'raises an error when attempting to set the current value of the bar to be ' \
'greater than the total' do
projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => 10)
_progressbar = Bar.new(:progress => progress)

Expand Down
8 changes: 4 additions & 4 deletions spec/lib/ruby-progressbar/components/percentage_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ module Components
describe Percentage do
describe '#percentage' do
it 'returns the percentage' do
projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => 10)
percentage = Percentage.new(:progress => progress)

Expand All @@ -18,7 +18,7 @@ module Components

describe '#percentage_with_precision' do
it 'returns the percentage' do
projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => 10)
percentage = Percentage.new(:progress => progress)

Expand All @@ -30,7 +30,7 @@ module Components

describe '#justified_percentage' do
it 'returns the percentage' do
projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => 10)
percentage = Percentage.new(:progress => progress)

Expand All @@ -42,7 +42,7 @@ module Components

describe '#justified_percentage_with_precision' do
it 'returns the percentage' do
projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => 10)
percentage = Percentage.new(:progress => progress)

Expand Down
6 changes: 3 additions & 3 deletions spec/lib/ruby-progressbar/components/rate_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ module Components
it 'returns the rate as a formatted integer' do
Timecop.freeze(::Time.utc(2020, 1, 1, 0, 0, 0))

projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => 100)
timer = Timer.new
rate = Rate.new(:progress => progress,
Expand All @@ -29,7 +29,7 @@ module Components
it 'can scale the rate' do
Timecop.freeze(::Time.utc(2020, 1, 1, 0, 0, 0))

projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => 100)
timer = Timer.new
rate = Rate.new(:progress => progress,
Expand All @@ -53,7 +53,7 @@ module Components
it 'returns the rate as a formatted integer' do
Timecop.freeze(::Time.utc(2020, 1, 1, 0, 0, 0))

projector = Calculators::SmoothedAverage.new
projector = Projectors::SmoothedAverage.new
progress = Progress.new(:projector => projector, :total => 100)
timer = Timer.new
rate = Rate.new(:progress => progress,
Expand Down
Loading

0 comments on commit c914747

Please sign in to comment.