Ruby/Progressbar v1.0.0 Release Notes

Release Date: 2012-08-18 // over 11 years ago
    • Remove 1.8 from the Ruby Travis builds
    • Add a spec for the %% molecule
    • Fix bug where a progress bar with an integrated percentage miscalculated the space it was taking up
    • fix @terminal_width and bar_width calculation
    • Fix more README typos
    • Set the default bar mark to '='
    • Make sure to blow up if a molecule is not value
    • It's not sufficient to say that a molecule is 'a percent sign followed by something that isn't a percent sign', we need to force it to be followed by a letter
    • Fix   problems in the README
    • Update the formatting to make sure the %b and %i formatting molecules can coexist with each other
    • Now that we can use the %b and %i flags, we can create a mirrored bar simply by using a format string of '%i%b' and therefore this extra code is no longer necessary
    • Make sure that when the timer is started, then stopped, then started again, it should not register as stopped?
    • Allow %i to be used display the incomplete space of the bar
    • Update ProgressBar::Formatter#format to reset the bar style to default if it is called without passing in a format string
    • Allow the %b molecule to be used to display the bar only without incomplete space
    • Update the %B format test to be more reasonable
    • Make the %w molecule only return the bar with the percentage instead of including empty space
    • Remove the length argument when calling ProgressBar::Components::Bar#to_s and instead set the attribute
    • Rename ProgressBar::Formatter#bar to #complete_bar
    • Change the %b (bar with percentage) format molecule to %w
    • Swap the meaning of the %b and %B molecules
    • There was a typo in the example formats in the README. The literal percent sign needs to be included in the format string
    • Make sure the '%%' molecule is formatted properly
    • Little refactoring on the ProgressBar::Formatter#process method
    • README update
    • Remove all of the ProgressBar::Base#update calls and convert to method calls that take a block #with_update
    • Add an "In The Weeds" section to the README
    • Add 'It's better than some other library' section to the README
    • Add contributors to the README
    • Add supported Rubies to the README
    • Tons of README formatting updates
    • Add time-mocking information to the README
    • If Time is being mocked via Delorean, make sure that the progress bar always uses the unmocked time
    • If Time is being mocked via Timecop, make sure that the progress bar always uses the unmocked time
    • When testing, make sure that we're able to always get the proper version of now that we need for our particular spec
    • When calling ProgressBar::Time.now allow a Time-like object to be passed in
    • Add a ruby-progressbar-specific implementation of Time to encapsulate the business logic
    • Extract the notion of now into a method on the Timer module
    • Remove extra private
    • Use inheritance to put title= in the Formatter module where it belongs
    • I didn't notice that #total and #progress were available in the Formatter module
    • Move logic specific to the modules into those modules and use the inheritance chain to get at them
    • Evidently Travis is having issues with Rubinius so we'll remove them from our .travis.yml file to get a passing build
    • Try and get better 1.8.7 compatibility when checking the end character in the progressbar string
    • Add the Travis-CI build status to the README
    • Add the Travis-CI configuration file
    • Update the other deprecation warnings outside of ProgressBar::Base
    • Add the remaining method deprecation/warning messages
    • Use a little metaprogramming to further dry up the deprecation messages
    • fixup! c3e6991988107ab45ac3dac380750b287db3bc2e
    • When displaying deprecation warnings for methods, only show them one time; not every time the method is invoked
    • Dry up the warning messages in ProgressBar::Depreciable
    • Move ProgressBar::Base#backwards_compatible_args_to_options_conversion to the ProgressBar::Depreciable module
    • Add a new ProgressBar::Depreciable module to encapsulate all of the deprecation logic
    • Forgot to return the options hash from ProgressBar::Base#backwards_compatible_args_to_options_conversion
    • Add the old bar_mark= method back so it's more backwards compatible
    • Update deprecation warnings to expire June 30th, 2013 instead of October 30th, 2013
    • Update the README to reflect the new syntax for creating a ProgressBar
    • Override ProgressBar.new and remain backward compatible with the pre-1.0 versions of the gem
    • Convert the ProgressBar module to a class so that we can...
    • Add ProgressBar::Base#progress and #total
    • Update the gemspec
    • Update the EstimatedTimer specs when smoothing is turned off such that the #decrement spec is sufficiently different from the smoothing on #decrement spec
    • Update EstimatedTimer specs when smoothing is turned off to be more consistent with the new smoothing specs
    • Add EstimatedTimer specs to test when smoothing is turned on
    • Update the spec text for the EstimatedTimer class so that it doesn't contain the actual expected value but rather the general expectation
    • Extract smoothing into its own let variable
    • Add notes to the README about smoothing
    • Invert the smoothing value such that 0.0 is no smoothing and 1.0 is maximum smoothing
    • Set the default smoothing value to 0.9
    • Convert the EstimatedTime#estimated_seconds_remaining over to using the running average
    • Tell the Progressable module to update the running average any time the progress is set
    • Add the notion of a smoothing variable to the Progressable module for use when calculating the running average
    • Introduce Progressable#running_average and reset it any time Progressable#start is called
    • Add a RunningAverageCalculator so we can offload the logic for calculating running averages in our Progressables
    • Always refer to total using the accessor rather than the instance variable
    • Fix place where we were using a literal string for our time format rather than the TIME_FORMAT constant
    • Make the Progressable initializer optional
    • Fix README mistake regarding out of bounds ETAs
    • In Progressable, rather than accessing the starting_position instance variable, use an accessor
    • Rather than having the logic in multiple places, use Progressable#start where possible
    • Update the Progressable module to always reference the progress accessor rather than the instance variable
    • Add the ability to customize the bar's title in real time
    • Add a note to the README about customizing the bar in real time
    • Add notes to the README about overriding the bar's length
    • Update the deprecation date of
    • Upgrade the README to describe the new 'integrated percentage' formatting option
    • Update Ruby version in .rvmrc
    • Replace @out.print with @out.write to work better in dumb terminal like Emacs' M-x shell.
    • Document the smoothing attribute a little better.
    • Rewrote smoothing stuff to something better.
    • Offload handling of weird time values to format_time (isn't that its job?) ;-)
    • Added "smoothing" attribute (default 0.9). It can be set to nil to use the old ETA code.
    • Make time estimate a smoothed moving average
    • Use the inherited #initialize
    • Add a format where the bar has an integrated percentage
    • Just always run all specs
    • Alias stopped? to paused?
    • If the bar is completed, show the elapsed time, otherwise show the estimated time
    • estimated_time to estimated_time_with_no_oob
    • Add a Guardfile
    • Add the ability to set the progress mark at any point
    • Upgrade RSpec in the Gemfile
    • Allow :focused w/o the '=> true'
    • More gem updates. Include guard
    • Quotes
    • Unindent private methods
    • And again
    • Consistency is key
    • And again
    • Change to new date and repo
    • Upgraded RSpec uses RSpec not Rspec
    • Not sure why I did this here
    • Upgrade RSpec and SimpleCov
    • Bump Ruby version to 1.9.3
    • allow to customize the #title_width
    • Detect whether the output device is a terminal, and use a simplified output strategy when it is not.
    • Use 1.9 compatible require in test.
    • Add tests for Timecop and Delorean time mocking
    • Make Progressbar resistant to time mocking
    • Automatically tag gem builds as Date.today
    • Replace the Bar's instance variable references
    • Remove Options Parser
    • The starting value should be passed on #start
    • Remove Title class for now
    • Change 'reversed bar' to 'mirrored bar'
    • Rename out to output and access w/o variable
    • Change default output to STDOUT
    • Rename output_stream to output
    • Rename current to progress
    • Update README
    • Add #decrement to the progress bar
    • Backwards compatibility for instantiation
    • Create with_timers helper
    • Update spec_helper with new root gem file
    • Update gemspec with new license file
    • Update gemspec to auto-update Date
    • Add deprecation and backwards compatibility helprs
    • Add SimpleCov to the project
    • Rename 'beginning_position' option to 'started_at'
    • Fix require files
    • Update README
    • Update README
    • Update README
    • Remove Test::Unit test cases which are covered
    • Replace licenses with the MIT license
    • Begin updating README
    • Add .gitignore
    • Fix 'ArgumentError: negative argument' when using with Spork
    • Bar can be forcibly stopped
    • Autostart for now
    • Add ability to pause/resume progress bar
    • Bar resets the elapsed time when reset.
    • Bar resets the estimated time when reset.
    • Timers can now be reset
    • #start determines #reset position
    • On #reset, bar goes back to its starting position
    • Bar can be reset back to 0
    • Fix test typo
    • Fix tests
    • Reminder for autostart
    • Move #title
    • Delete unneeded code
    • Stop Elapsed Timer on finish
    • Progressable components finish properly
    • Refactor out common 'Progressable' functionality
    • Prepare for more 'finish' functionality
    • Refactor common Timer functionality into a module
    • Bar outputs a \n when it's finished
    • Bar can now be "finished"
    • Remove unnecessary (for now) code
    • Resizing algorithm is much smarter
    • Fix length_changed? check
    • Move formatting methods and make them private
    • Create #inspect method
    • Remove implemented methods
    • We have a LICENSE file. No need for this.
    • Fix output problem
    • Always show 2 decimal places with precise percentage
    • Elapsed Time works properly with progress bar
    • Estimated Timer works properly with progress bar
    • %r format string works properly
    • Estimated Timer can now be incremented
    • Bar graphic can now be reversed
    • Remove method arguments from molecule
    • %e, %E and %f format the estimated time correctly
    • Formatting
    • Include Molecule specs
    • Estimated Timer works with out of bounds times
    • Estimated Timer displays estimated time correctly
    • Estimated Timer displays unknown time remaining
    • Estimated Time can now be displayed
    • Make Timer work properly
    • Move bar_spec to the proper locale
    • Elapsed Time can now be displayed
    • Percentage information can now be displayed
    • Capacity information can now be displayed
    • Move Bar and Title into Components submodule
    • Base refactoring work laid out
    • Add RSpec support files
    • Create a Gemfile and other infrastructure files
    • Update gemspec
    • Fix to failing test: Adjusting the path to progressbar.rb file
    • accessor for alternate bar mark
    • Updated gem name to match project (so it would build)
    • Add a gemspec.
    • Move progressbar.rb into lib/.
    • Add LICENSE files.
    • Get rid of the ChangeLog. That's what revision logs are for.
    • Make the readme use Markdown.
    • Initial commit (based on Ruby/ProgressBar 0.9).