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 new
step
singleton method to the FizzBuzz class. - Added Code of Conduct to the project.
- Added new
--line
command line switch to thefizzbuzz
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
andUNLIKELY
macros, and improved theINTEGER_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
toextconf.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.
- 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?
withFile.exist?
. - Replaced usage of the
volatile
keyword with theRB_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 simplerwhile
-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.
- 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.
- 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
to_hash
,as_json
,to_json
andfrom_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 appropriateGuardfile
. - Added LLVM (
clang
) compiler to build with to Travis CI.
- 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 runtest
beforebenchmark
.
- 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.
- 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 Ruby 2.1.0 to Travis CI.
- Added BitDeli and Gemnasium integration.
- 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 issue reported by LLVM (
clang
).
0.5.0 - 2013-11-26
- Added integration with Array and Range types.
- Added simple benchmark.
0.4.0 - 2013-11-18
- Added Coveralls and Code Climate integration (and hence improved code test coverage).
- Improved error handling and made code more resilient to errors.
- Fixed formatting and white spaces.
- Retired support for Ruby 1.8.x (no support for MRI, Ruby Enterprise Edition and Rubinius).
0.3.0 - 2013-08-31
- 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.
- Renamed project from fizzbuzz to ruby-fizzbuzz to avoid clashes with other Ruby gems hosted on RubyGems web site.
- Made
mkmf
inextconf.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
is_fizz?
,is_buzz?
andis_fizzbuzz?
singleton methods to FizzBuzz class. - Added
fizz?
,buzz?
andfizzbuzz?
methods to the Integer class via a monkey-patch for convenience. (#2)
- 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 from1
ton
-- it is now possible to calculate FizzBuzz results for givenn
,m
values, wheren
denotes start andm
denotes stop value.
0.1.0 - 2012-09-27
- First version of FizzBuzz.