Skip to content

Latest commit

 

History

History
175 lines (129 loc) · 6.85 KB

CHANGELOG.md

File metadata and controls

175 lines (129 loc) · 6.85 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

0.8.0 - 2020-02-05

Added

  • Added new step singleton method to the FizzBuzz class.
  • Added Code of Conduct to the project.
  • Added new --line command line switch to the fizzbuzz script, which allows for printing values in a single line.
  • Added support for the Integer Unification in Ruby version 2.4 onwards.
  • Added few optimisations e.g., LIKELY and UNLIKELY macros, and improved the INTEGER_P macro.
  • Added support for installing and building on Windows has been confirmed with an environment set by Ruby Installer and DevKit (which is MinGW under the hood).
  • Added more CFLAGS to extconf.rb file.
  • Added definition of _DEFAULT_SOURCE since _BSD_SOURCE and _SVID_SOURCE are deprecated.
  • Added friendly error message when the ruby-fizzbuzz Ruby gem is missing.
  • Added .editorconfig file for Ruby.
  • Added very basic .gitattributes file.
  • Added .mailmap file to be used by Git.
  • Added NOTICE file to the project.

Changed

  • Moved to Ubuntu Xenial on Travis CI.
  • Re-factored Array class integration.
  • Re-factored custom typedef types and some other small changes.
  • Replaced File.exists? with File.exist?.
  • Replaced usage of the volatile keyword with the RB_GC_GUARD macro.
  • Moved to using module constants for the FizzBuzz specific strings values e.g., Fizz, Buzz and FizzBuzz to improve performance since constants are allocated only once.
  • Updated public GPG key.
  • Updated public signing key.
  • Updated Ruby gem dependencies.
  • Removed surplus for-loop replacing it with a simpler while-loop.
  • Removed surplus license headers from each file.
  • Removed deprecated Gem::Specification#has_rdoc=.
  • Removed integration with services like Coveralls, Code Climate and Gemnasium.
  • Addressed some of the GCC compiler warnings.

Fixed

  • Resolved Bundler issues by updating its version prior to installing Ruby gems when on Travis CI.
  • Fixed pattern for test files in Guardfile.
  • Addressed RuntimeError caused by modification of a frozen string.

Deprecated

  • Retired support and testing with Ruby 1.9.x, 2.0.x, 2.1.x, 2.2.x and 2.3.x on Travis CI.
  • Retired support and testing for Rubinius on Travis CI.
  • Retried testing with Ruby head on Travis CI.

0.7.0 - 2014-12-15

Added

  • Added to_hash, as_json, to_json and from_json (singleton) to the FizzBuzz class.
  • Added rudimentary Vagrantfile that can be used to build a development environment.
  • Added the Guard Ruby gem for convenience, with an appropriate Guardfile.
  • Added LLVM (clang) compiler to build with to Travis CI.

Changed

  • Re-factored fizzbuzz (singleton) from the FizzBuzz class to speed it up.
  • Re-factored tests to utilize modern version of the test-unit Ruby gem.
  • Re-factored and cleaned up small portions of code and documentation.
  • Updated Rakefile to no longer run test before benchmark.

Fixed

  • Correctly return Enumerator when integrating with the Range class.
  • Fixed benchmarks concerning Array and Range integration.
  • Fixed Travis CI build against Rubinius.
  • Fixed build to make it work with C++ compilers.
  • Fixed version number to comply with Semantic Versioning.

Deprecated

  • No longer use of Enumerable#entries in the Array integration, achieving better performance.
  • Retired testing with Ruby 1.9.2 and 2.1.0, and added 2.1.5 on Travis CI.
  • Removed BitDeli badge.

0.6.0 - 2014-02-23

Added

  • Added Ruby 2.1.0 to Travis CI.
  • Added BitDeli and Gemnasium integration.

Changed

  • Updated development dependencies.
  • Re-factored and cleaned up small portions of code.
  • Made Rake test task to be the default tasks.
  • Updated the .gitignore file to cover Bundler, rbenv, etc.

Fixed

  • Fixed issue reported by LLVM (clang).

0.5.0 - 2013-11-26

Added

  • Added integration with Array and Range types.
  • Added simple benchmark.

0.4.0 - 2013-11-18

Added

  • Added Coveralls and Code Climate integration (and hence improved code test coverage).

Changed

  • Improved error handling and made code more resilient to errors.

Fixed

  • Fixed formatting and white spaces.

Deprecated

  • Retired support for Ruby 1.8.x (no support for MRI, Ruby Enterprise Edition and Rubinius).

0.3.0 - 2013-08-31

Added

  • Added custom exceptions and improved error handling.
  • Added more variety of Rubies on which tests are being run with Travis CI.
  • Added project to RubyGems so it can be installed with just gem install ruby-fizzbuzz command.

Changed

  • Renamed project from fizzbuzz to ruby-fizzbuzz to avoid clashes with other Ruby gems hosted on RubyGems web site.
  • Made mkmf in extconf.rb more user-friendly (it now reports missing build-time dependencies better).
  • Split Ruby gem specification (or gemspec if you wish) away from Rakefile into its own file (namely ruby-fizzbuzz.gemspec).
  • Improved documentation and removed bunch of small code smells.

0.2.0 - 2012-09-29

Added

  • Added is_fizz?, is_buzz? and is_fizzbuzz? singleton methods to FizzBuzz class.
  • Added fizz?, buzz? and fizzbuzz? methods to the Integer class via a monkey-patch for convenience. (#2)

Changed

  • Changed behavior of the FizzBuzz#[] singleton method, so it will yield a FizzBuzz result for a given arbitrary Integer value. (#1)
  • Re-factored code to make it cleaner, and added more tests and improved coverage.
  • Re-factored FizzBuzz so it now does not assume that we always want to calculate results from 1 to n -- it is now possible to calculate FizzBuzz results for given n, m values, where n denotes start and m denotes stop value.

0.1.0 - 2012-09-27

Added

  • First version of FizzBuzz.