Skip to content

Latest commit

 

History

History
333 lines (244 loc) · 15.5 KB

CHANGELOG.md

File metadata and controls

333 lines (244 loc) · 15.5 KB

Ruby Holidays Gem CHANGELOG

6.1.0

6.0.0

  • Remove support for ruby 2.1.0 since it is no longer officially supported. This is the cause of the major version bump.
  • Update to v2.0.0 definitions. This changes the format of definition tests and requires the other changes.
  • Rewrite test generation logic to consume new YAML format.

To be crystal clear: this version should not behave differently in terms of holiday results than v5.7.0 of the gem. Any differences are a bug that should be addressed.

5.7.0

  • Update to v1.7.1 definitions. Please see the definitions repository for the list of changes.
  • Remove 'coveralls'. We never looked at the reports. We will we simplecov to enforce test coverage. It will start off being set to require 99% and above.

5.6.0

  • Update to v1.6.1 definitions, which includes updates for the :ca region (and subregions)

5.5.1

  • Update to v1.5.1 definitions, which includes bugfix in fedex custom method

5.5.0

  • Fix #251: load_custom would override all other definitions
  • Fix #266: :any does not return expected results
  • Fix #265: Jersey/je not loaded as expected when pulling :gb
  • Add lunar date calculations, which are used in :kr and :vi definitions (thanks to https://github.com/jonathanpike)
  • Improve cache performance (thanks to https://github.com/mzruya)
  • Remove incorrect comments in definition generation (thanks to https://github.com/morrme)
  • Fix bug related to definition functions inadvertently affecting subsequent date calculations
  • Point to latest version (1.5.0) of definitions, which includes:
    • Add Vietnamese holidays
    • Updates Australian holidays
    • Updates Korean holidays to use native language and fancy lunar date calculations
    • Fix NYSE definitions to correctly calculate observed "New Year's Day"

5.4.0

  • Add support for ruby 2.4.0 (added it to the required tests in Travis CI)
  • Fix issue #250, which was that subregions were 'lost' if there was more than one underscore in it (thanks to https://github.com/chinito)
  • Fix caching when using Date extensions (thanks to https://github.com/alexgerstein)
  • Remove unused weekend date calculator method (thanks to https://github.com/ttwo32)
  • Use FULL_DEFINITIONS_PATH when loading definitions to avoid NameErrors when iterating whole LOAD_PATH (thanks to https://github.com/burke)
  • Point to latest version (1.3.0) of definitions, which includes:
    • Add Tunisian (tn) holidays (thanks to https://github.com/achr3f)
    • Corrects various Australian holidays
    • Update certain German regions for accuracy
    • Change 'yk' to 'yt'

5.3.0

5.2.1

  • Fix caching (i.e. calls to cache_between) to...you know, actually cache correctly and give performance improvements. Thanks to https://github.com/AnotherJoSmith for the fix!

5.2.0

  • Point to latest (v1.2.0 of definitions)
    • updates jp defs to fix 'Foundation Day' name
    • Fix ca defs for observed holidays
    • Update au defs to have Christmas and Boxing Day for all of Australia instead of just individual territories
    • Update ie defs to consolidate St Stephen's Day to use common method instead of custom method

5.1.0

  • Add load_all method to Holidays namespace to preload all definitions (i.e. no lazy loading)
  • Fix issue-234: correctly load available regions so there is no error on Holidays.available_regions call

5.0.0

  • Remove support for jruby 1.7 (this is the main reason for the major semver bump)
  • Remove support for ruby 2.0 (since it is no longer being supported by the core ruby team)
  • Add back the lazy loading of regions (this was removed in the 4.0.0 bump) instead of loading upon require (this should have no outward repercussions for users)
  • Move definitions into their own repository and add as submodule. This will allow for more flexibility for tools written in other languages.
  • Rename DateCalculatorFactory to Factory::DateCalculator

4.7.0

4.6.0

4.5.0

4.4.0

4.3.0

4.2.0

  • BUGFIX Issue-194: correctly calculate next_holidays if next holiday is far in the future
  • Give dutch holidays their proper names (https://github.com/Qqwy)

4.1.0

  • Issue-161: correctly report St Andrews Day as informal 2006 and earlier in gb_sct
  • Issue-169: set correct years of observance for Family Day in various ca provinces
  • Issue-163: Add next_holidays method. See README for usage (https://github.com/ttwo32)

4.0.0

Major refactor with breaking changes! Sorry for the wall of text but there is a lot of info here.

  • Fixes issue 144 (loading custom defs with methods). This was the refactor catalyst. Changes highlights include:
    • Allow for custom methods added via the load_custom method to be used immediately as expected
    • Consolidate and clarify custom method parsing and validation
    • Change nearly every definition to use new 'custom method' YAML format. See definitions/README.md for more info.
    • Remove require functionality when loading new definitions, instead using in-memory repositories. See below for info.
    • Now loads all generated definitions when require 'holidays' is called. See below for performance info.
  • Add rake console command for easier local testing
  • Remove or rename many public methods that were never intended for public use:
    • Remove following date calculation helper methods (definitions must now directly call factory):
      • easter
      • orthodox_easter
      • orthodox_easter_julian
      • to_monday_if_sunday
      • to_monday_if_weekend
      • to_weekday_if_boxing_weekend
      • to_weekday_if_boxing_weekend_from_year
      • to_weekday_if_weekend
      • calculate_day_of_month
    • Remove available method. This was only intended for internal use
    • Remove parse_definition_files_and_return_source. This was only intended for internal use
    • Remove load_all method. This was only intended for internal use
    • Rename regions to available_regions for clarity
    • Rename full_week? to any_holidays_during_work_week? for clarity
  • Following methods now constitute the 'public API' of this gem:
    • on
    • any_holidays_during_work_week? (renamed method, was originally full_week?, same behavior as before)
    • between
    • cache_between
    • available_regions (renamed method, was originally regions, same behavior as before)
    • load_custom
  • All generated definitions are now loaded when require 'holidays' is called
    • Previously files were required 'on the fly' when a specific region was specified. By requiring all definitions upon startup we greatly simplify the handling of regions, definitions, and custom methods internally
    • This results in a performance hit when calling require 'holidays'. Here is an example based on my benchmarking:
      • old: 0.045537
      • new: 0.145125

I decided that this performance hit on startup is acceptable. All other performance should remain the same. If performance is a major concern please open an issue so we can discuss your use case.

3.3.0

This is the final minor point release in v3.X.X. I am releasing it so that all of the latest definitions can be used by anyone that is not ready to jump to version 4.0.0. I am not planning on supporting this version unless a major issue is found that needs to be immediately addressed.

3.2.0

3.1.2

3.1.1

  • Require 'digest/md5' in main 'holidays' module. This was missed during the refactor (thanks to https://github.com/espen)

3.1.0

3.0.0

  • Major refactor! Lots of code moved around and some methods were removed from the public api (they were never intended to be public).
  • Only supports ruby 2.0.0 and up. Travis config has been updated to reflect this.
  • Moves 'date' monkeypatching out of main lib and makes it a core extension. See README for usage.
  • Fixes remote execution bug in issue-86 (thanks to https://github.com/Intrepidd for reporting)
  • No region definition changes.

I decided to make this a major version bump due to how much I changed. I truly hope no one will notice. See the README for the usage. It has, except for the date core extension, not changed.

2.2.0

2.1.0

2.0.0

1.2.0

1.1.0

1.0.7

1.0.6

1.0.5

1.0.4

  • Add Liechtenstein holiday defs (mercy vielmal Bernhard Furtmueller)

1.0.3

  • Add Austrian holiday definitions (thanks to Vogel Siegfried)

1.0.2

1.0.0

0.9.3

  • Added New York Stock Exchange holidays (thank you Alan Larkin).
  • Added UPS holidays (thank you Tim Anglade).
  • Fixed rakefile to force lower case definition file names.

0.9.2

  • Included rakefile in Gem (thank you James Herdman).

0.9.1

  • au.yaml was being included incorrectly in US holiday definitions. Thanks to Glenn Vanderburg for the fix.

0.9.0

  • Initial release.