From 4a43f1b30a7a82a7afe5ad727142e541c723f3ac Mon Sep 17 00:00:00 2001 From: Alex Dunae Date: Sat, 24 Nov 2007 20:50:20 +0000 Subject: [PATCH] Added support for type: in bin/build_defs.rb --- bin/build_defs.rb | 6 +++++- data/de.yaml | 4 ++-- data/nl.yaml | 4 +++- lib/holidays/au.rb | 5 +++-- lib/holidays/ca.rb | 14 +++++++------- lib/holidays/dk.rb | 18 +++++++++--------- lib/holidays/europe.rb | 34 ++++++++++++++++++---------------- lib/holidays/is.rb | 6 +++--- lib/holidays/mx.rb | 14 +++++++------- lib/holidays/nl.rb | 10 ++++++---- lib/holidays/north_america.rb | 14 +++++++------- lib/holidays/us.rb | 16 ++++++++-------- test/test_region_nl.rb | 31 +++++++++++++++++++++++++++++++ 13 files changed, 109 insertions(+), 67 deletions(-) create mode 100644 test/test_region_nl.rb diff --git a/bin/build_defs.rb b/bin/build_defs.rb index c5e5274..60e17b0 100644 --- a/bin/build_defs.rb +++ b/bin/build_defs.rb @@ -24,7 +24,7 @@ def parse_holiday_defs(module_name, files) exists = false rules_by_month[month].each do |ex| - if ex['name'] == rule['name'] and ex['wday'] == rule['wday'] and ex['mday'] == rule['mday'] and ex['week'] == rule['week'] + if ex['name'] == rule['name'] and ex['wday'] == rule['wday'] and ex['mday'] == rule['mday'] and ex['week'] == rule['week'] and ex['function'] == rule['function'] ex['regions'] << rule['regions'].flatten exists = true end @@ -60,6 +60,10 @@ def parse_holiday_defs(module_name, files) str << ":wday => #{rule['wday']}, :week => #{rule['week']}, " end + if rule['type'] + str << ":type => :#{rule['type']}, " + end + # shouldn't allow the same region twice str << ":name => \"#{rule['name']}\", :regions => [:" + rule['regions'].uniq.join(', :') + "]}" rule_strings << str diff --git a/data/de.yaml b/data/de.yaml index 2e1124c..d26ac95 100644 --- a/data/de.yaml +++ b/data/de.yaml @@ -25,7 +25,7 @@ months: - name: Neujahrstag regions: [de] mday: 1 - - name: Heilige Drei Könige + - name: Heilige Drei Könige regions: [de_bw, de_by] mday: 6 5: @@ -36,7 +36,7 @@ months: regions: [de] mday: 8 8: - - name: Mariä Himmelfahrt + - name: Mariä Himmelfahrt regions: [de_by] mday: 15 10: diff --git a/data/nl.yaml b/data/nl.yaml index 4b2994a..4f8c77f 100644 --- a/data/nl.yaml +++ b/data/nl.yaml @@ -3,6 +3,7 @@ # Updated: 2008-11-23. # Sources: # - http://en.wikipedia.org/wiki/Public_holidays_in_the_Netherlands +# - http://www.buyusa.gov/netherlands/en/dutch_holidays.html --- months: 0: @@ -17,7 +18,7 @@ months: function: lambda { |year| easter(year)+1 } - name: Hemelvaartsdag regions: [nl] - function: lambda { |year| easter(year)+40 } + function: lambda { |year| easter(year)+39 } - name: Pinksteren regions: [nl] function: lambda { |year| easter(year)+49 } @@ -43,6 +44,7 @@ months: - name: Sinterklaas regions: [nl] mday: 5 + type: informal - name: Kerstmis regions: [nl] mday: 25 diff --git a/lib/holidays/au.rb b/lib/holidays/au.rb index 636b749..b44d61d 100644 --- a/lib/holidays/au.rb +++ b/lib/holidays/au.rb @@ -17,9 +17,10 @@ module Holidays 5 => [{:wday => 1, :week => 1, :name => "Labour Day", :regions => [:au_qld, :au_nt]}], 0 => [{:function => lambda { |year| easter(year)-2 }, :name => "Good Friday", :regions => [:au]}, {:function => lambda { |year| easter(year)-1 }, :name => "Easter Saturday", :regions => [:au]}, - {:function => lambda { |year| easter(year)+1 }, :name => "Easter Monday", :regions => [:au, :au_tas]}], + {:function => lambda { |year| easter(year)+1 }, :name => "Easter Monday", :regions => [:au]}, + {:function => lambda { |year| easter(year)+2 }, :name => "Easter Monday", :regions => [:au_tas]}], 6 => [{:wday => 1, :week => 2, :name => "Queen's Birthday", :regions => [:au]}, - {:mday => 6, :name => "Queensland Day", :regions => [:au_qld]}], + {:mday => 6, :type => :informal, :name => "Queensland Day", :regions => [:au_qld]}], 1 => [{:mday => 1, :name => "New Year's Day", :regions => [:au]}, {:mday => 26, :name => "Australia Day", :regions => [:au]}], 12 => [{:mday => 25, :name => "Christmas Day", :regions => [:au]}, diff --git a/lib/holidays/ca.rb b/lib/holidays/ca.rb index 14c7661..4994605 100644 --- a/lib/holidays/ca.rb +++ b/lib/holidays/ca.rb @@ -16,7 +16,7 @@ module Holidays HOLIDAYS_BY_MONTH = { 5 => [{:function => lambda { |year| ca_victoria_day(year) }, :name => "Victoria Day", :regions => [:ca]}, {:function => lambda { |year| ca_victoria_day(year) }, :name => "National Patriotes Day", :regions => [:ca_qc]}, - {:wday => 0, :week => 3, :name => "Father's Day", :regions => [:us, :ca]}], + {:wday => 0, :week => 3, :type => :informal, :name => "Father's Day", :regions => [:us, :ca]}], 0 => [{:function => lambda { |year| easter(year)-2 }, :name => "Good Friday", :regions => [:ca, :us]}, {:function => lambda { |year| easter(year)+1 }, :name => "Easter Monday", :regions => [:ca_qc]}], 11 => [{:mday => 11, :name => "Rememberance Day", :regions => [:ca]}], @@ -32,8 +32,8 @@ module Holidays {:mday => 9, :name => "Nunavut Day", :regions => [:ca_nu]}], 2 => [{:wday => 1, :week => 3, :name => "Family Day", :regions => [:ca_ab, :ca_on, :ca_sk]}, {:wday => 1, :week => 3, :name => "Louis Riel Day", :regions => [:ca_mb]}, - {:mday => 2, :name => "Groundhog Day", :regions => [:us, :ca]}, - {:mday => 14, :name => "Valentine's Day", :regions => [:us, :ca]}], + {:mday => 2, :type => :informal, :name => "Groundhog Day", :regions => [:us, :ca]}, + {:mday => 14, :type => :informal, :name => "Valentine's Day", :regions => [:us, :ca]}], 8 => [{:wday => 1, :week => 1, :name => "BC Day", :regions => [:ca_bc]}, {:wday => 1, :week => 1, :name => "Saskatchewan Day", :regions => [:ca_sk]}, {:wday => 1, :week => 1, :name => "Heritage Day", :regions => [:ca_ab]}, @@ -41,12 +41,12 @@ module Holidays {:wday => 1, :week => 1, :name => "Civic Holiday", :regions => [:ca_on]}, {:wday => 1, :week => 3, :name => "Discovery Day", :regions => [:ca_yk]}], 3 => [{:mday => 23, :name => "St. George's Day", :regions => [:ca_nf]}, - {:mday => 17, :name => "St. Patrick's Day", :regions => [:us, :ca]}], + {:mday => 17, :type => :informal, :name => "St. Patrick's Day", :regions => [:us, :ca]}], 9 => [{:wday => 1, :week => 1, :name => "Labour Day", :regions => [:ca]}], - 4 => [{:mday => 1, :name => "April Fool's Day", :regions => [:us, :ca]}, - {:mday => 22, :name => "Earth Day", :regions => [:us, :ca]}], + 4 => [{:mday => 1, :type => :informal, :name => "April Fool's Day", :regions => [:us, :ca]}, + {:mday => 22, :type => :informal, :name => "Earth Day", :regions => [:us, :ca]}], 10 => [{:wday => 1, :week => 2, :name => "Thanksgiving", :regions => [:ca]}, - {:mday => 31, :name => "Halloween", :regions => [:us, :ca]}] + {:mday => 31, :type => :informal, :name => "Halloween", :regions => [:us, :ca]}] } # Get the date of Easter in a given year. diff --git a/lib/holidays/dk.rb b/lib/holidays/dk.rb index 0e435b5..46869fe 100644 --- a/lib/holidays/dk.rb +++ b/lib/holidays/dk.rb @@ -15,8 +15,8 @@ module Holidays HOLIDAYS_BY_MONTH = { 5 => [{:mday => 1, :name => "Arbejdernes kampdag", :regions => [:dk]}, - {:mday => 5, :name => "Danmarks befrielse", :regions => [:dk]}], - 0 => [{:function => lambda { |year| easter(year)-49 }, :name => "Fastelavn", :regions => [:dk]}, + {:mday => 5, :type => :informal, :name => "Danmarks befrielse", :regions => [:dk]}], + 0 => [{:function => lambda { |year| easter(year)-49 }, :type => :informal, :name => "Fastelavn", :regions => [:dk]}, {:function => lambda { |year| easter(year)-7 }, :name => "Palmesøndag", :regions => [:dk]}, {:function => lambda { |year| easter(year)-3 }, :name => "Skærtorsdag", :regions => [:dk]}, {:function => lambda { |year| easter(year)-2 }, :name => "Langfredag", :regions => [:dk]}, @@ -26,18 +26,18 @@ module Holidays {:function => lambda { |year| easter(year)+40 }, :name => "Kristi Himmelfartsdag", :regions => [:dk, :dk]}, {:function => lambda { |year| easter(year)+49 }, :name => "2. Pinsedag", :regions => [:dk]}, {:function => lambda { |year| easter(year)+50 }, :name => "Pinsedag", :regions => [:dk]}], - 11 => [{:mday => 10, :name => "Mortensaften", :regions => [:dk]}], + 11 => [{:mday => 10, :type => :informal, :name => "Mortensaften", :regions => [:dk]}], 6 => [{:mday => 5, :name => "Grundlovsdag", :regions => [:dk]}, - {:mday => 15, :name => "Valdemarsdag og Genforeningsdag", :regions => [:dk]}, - {:mday => 23, :name => "Sankt Hans aften", :regions => [:dk]}], + {:mday => 15, :type => :informal, :name => "Valdemarsdag og Genforeningsdag", :regions => [:dk]}, + {:mday => 23, :type => :informal, :name => "Sankt Hans aften", :regions => [:dk]}], 1 => [{:mday => 1, :name => "Nytårsdag", :regions => [:dk]}], - 12 => [{:mday => 13, :name => "Sankt Lucia", :regions => [:dk]}, + 12 => [{:mday => 13, :type => :informal, :name => "Sankt Lucia", :regions => [:dk]}, {:mday => 24, :name => "Juleaftensdag", :regions => [:dk]}, {:mday => 25, :name => "1. juledag", :regions => [:dk]}, {:mday => 26, :name => "2. juledag", :regions => [:dk_]}], - 4 => [{:mday => 1, :name => "1. april", :regions => [:dk]}, - {:mday => 9, :name => "Danmarks besættelse", :regions => [:dk]}, - {:mday => 16, :name => "Dronningens fødselsdag", :regions => [:dk]}] + 4 => [{:mday => 1, :type => :informal, :name => "1. april", :regions => [:dk]}, + {:mday => 9, :type => :informal, :name => "Danmarks besættelse", :regions => [:dk]}, + {:mday => 16, :type => :informal, :name => "Dronningens fødselsdag", :regions => [:dk]}] } # Get the date of Easter in a given year. diff --git a/lib/holidays/europe.rb b/lib/holidays/europe.rb index 2a31a12..04d2cf5 100644 --- a/lib/holidays/europe.rb +++ b/lib/holidays/europe.rb @@ -15,7 +15,7 @@ module Holidays HOLIDAYS_BY_MONTH = { 5 => [{:mday => 1, :name => "Arbejdernes kampdag", :regions => [:dk]}, - {:mday => 5, :name => "Danmarks befrielse", :regions => [:dk]}, + {:mday => 5, :type => :informal, :name => "Danmarks befrielse", :regions => [:dk]}, {:mday => 1, :name => "Tag der Arbeit", :regions => [:de]}, {:mday => 8, :name => "Victoire 1945", :regions => [:de, :fr]}, {:mday => 1, :name => "Día del Trabajador", :regions => [:es]}, @@ -26,14 +26,14 @@ module Holidays {:wday => 1, :week => 1, :name => "May Day", :regions => [:gb, :ie]}, {:mday => 9, :name => "Liberation Day", :regions => [:je, :gb_jsy, :gg, :gb_gsy]}, {:wday => 1, :week => -1, :name => "Bank Holiday", :regions => [:gb]}, - {:mday => 3, :name => "Sjómannadagurinn", :regions => [:is]}, + {:mday => 3, :type => :informal, :name => "Sjómannadagurinn", :regions => [:is]}, {:mday => 17, :name => "Lýðveldisdagurinn", :regions => [:is]}, {:mday => 1, :name => "Festa dei Lavoratori", :regions => [:it]}, {:mday => 4, :name => "Dodenherdenking", :regions => [:nl]}, {:mday => 5, :name => "Bevrijdingsdag", :regions => [:nl]}, {:mday => 1, :name => "Darba svetki", :regions => [:lv]}, {:mday => 4, :name => "Neatkaribas deklaracijas pasludinašanas diena", :regions => [:lv]}], - 0 => [{:function => lambda { |year| easter(year)-49 }, :name => "Fastelavn", :regions => [:dk]}, + 0 => [{:function => lambda { |year| easter(year)-49 }, :type => :informal, :name => "Fastelavn", :regions => [:dk]}, {:function => lambda { |year| easter(year)-7 }, :name => "Palmesøndag", :regions => [:dk]}, {:function => lambda { |year| easter(year)-3 }, :name => "Skærtorsdag", :regions => [:dk]}, {:function => lambda { |year| easter(year)-2 }, :name => "Langfredag", :regions => [:dk]}, @@ -69,13 +69,15 @@ module Holidays {:function => lambda { |year| easter(year) }, :name => "Pasqua", :regions => [:it]}, {:function => lambda { |year| easter(year)+1 }, :name => "Lunedì dell'Angelo", :regions => [:it]}, {:function => lambda { |year| easter(year)-2 }, :name => "Goede Vrijdag", :regions => [:nl]}, - {:function => lambda { |year| easter(year) }, :name => "Pasen", :regions => [:nl, :nl]}, - {:function => lambda { |year| easter(year)+40 }, :name => "Hemelvaartsdag", :regions => [:nl]}, - {:function => lambda { |year| easter(year)+49 }, :name => "Pinksteren", :regions => [:nl, :nl]}, + {:function => lambda { |year| easter(year) }, :name => "Pasen", :regions => [:nl]}, + {:function => lambda { |year| easter(year)+1 }, :name => "Pasen", :regions => [:nl]}, + {:function => lambda { |year| easter(year)+39 }, :name => "Hemelvaartsdag", :regions => [:nl]}, + {:function => lambda { |year| easter(year)+49 }, :name => "Pinksteren", :regions => [:nl]}, + {:function => lambda { |year| easter(year)+50 }, :name => "Pinksteren", :regions => [:nl]}, {:function => lambda { |year| easter(year)-2 }, :name => "Liela Piektdiena", :regions => [:lv]}, {:function => lambda { |year| easter(year) }, :name => "Lieldienas", :regions => [:lv]}, {:function => lambda { |year| easter(year)+1 }, :name => "2. Lieldienas", :regions => [:lv]}], - 11 => [{:mday => 10, :name => "Mortensaften", :regions => [:dk]}, + 11 => [{:mday => 10, :type => :informal, :name => "Mortensaften", :regions => [:dk]}, {:mday => 1, :name => "Allerheiligen", :regions => [:de_bw, :de_by, :de_nw, :de_rp, :de_sl]}, {:mday => 1, :name => "Todos los Santos", :regions => [:es]}, {:mday => 1, :name => "Toussaint", :regions => [:fr]}, @@ -84,8 +86,8 @@ module Holidays {:mday => 1, :name => "Ognissanti", :regions => [:it]}, {:mday => 18, :name => "Latvijas Republikas proklamešanas diena", :regions => [:lv]}], 6 => [{:mday => 5, :name => "Grundlovsdag", :regions => [:dk]}, - {:mday => 15, :name => "Valdemarsdag og Genforeningsdag", :regions => [:dk]}, - {:mday => 23, :name => "Sankt Hans aften", :regions => [:dk]}, + {:mday => 15, :type => :informal, :name => "Valdemarsdag og Genforeningsdag", :regions => [:dk]}, + {:mday => 23, :type => :informal, :name => "Sankt Hans aften", :regions => [:dk]}, {:mday => 9, :name => "Día de la Región de Murcia", :regions => [:es_mu]}, {:mday => 9, :name => "Día de La Rioja", :regions => [:es_lo]}, {:wday => 1, :week => 1, :name => "Labour Day/May Day", :regions => [:ie]}, @@ -102,12 +104,12 @@ module Holidays {:mday => 2, :name => "New Year's", :regions => [:gb_sct]}, {:mday => 1, :name => "Nýársdagur", :regions => [:is]}, {:mday => 6, :name => "Þrettándinn", :regions => [:is]}, - {:mday => 19, :name => "Bóndadagur", :regions => [:is]}, + {:mday => 19, :type => :informal, :name => "Bóndadagur", :regions => [:is]}, {:mday => 1, :name => "Capodanno", :regions => [:it]}, {:mday => 6, :name => "Epifania", :regions => [:it]}, {:mday => 1, :name => "Nieuwjaar", :regions => [:nl]}, {:mday => 1, :name => "Jaunais Gads", :regions => [:lv]}], - 12 => [{:mday => 13, :name => "Sankt Lucia", :regions => [:dk]}, + 12 => [{:mday => 13, :type => :informal, :name => "Sankt Lucia", :regions => [:dk]}, {:mday => 24, :name => "Juleaftensdag", :regions => [:dk]}, {:mday => 25, :name => "1. juledag", :regions => [:dk]}, {:mday => 26, :name => "2. juledag", :regions => [:dk_]}, @@ -128,7 +130,7 @@ module Holidays {:mday => 8, :name => "Immacolata Concezione", :regions => [:it]}, {:mday => 25, :name => "Natale", :regions => [:it]}, {:mday => 26, :name => "Santo Stefano", :regions => [:it]}, - {:mday => 5, :name => "Sinterklaas", :regions => [:nl]}, + {:mday => 5, :type => :informal, :name => "Sinterklaas", :regions => [:nl]}, {:mday => 25, :name => "Kerstmis", :regions => [:nl]}, {:mday => 26, :name => "Kerstmis", :regions => [:nl]}, {:mday => 25, :name => "Ziemassvetki", :regions => [:lv]}, @@ -139,7 +141,7 @@ module Holidays {:mday => 5, :name => "Tynwald Day", :regions => [:im, :gb_iom]}, {:mday => 12, :name => "Battle of the Boyne", :regions => [:gb_nir]}], 2 => [{:mday => 28, :name => "Día de Andalucía", :regions => [:es_an]}, - {:mday => 18, :name => "Konudagur", :regions => [:is]}], + {:mday => 18, :type => :informal, :name => "Konudagur", :regions => [:is]}], 8 => [{:mday => 15, :name => "Mariä Himmelfahrt", :regions => [:de_by]}, {:mday => 15, :name => "Asunción", :regions => [:es]}, {:mday => 15, :name => "Assomption", :regions => [:fr]}, @@ -156,9 +158,9 @@ module Holidays {:mday => 8, :name => "Día de Asturias", :regions => [:es_o]}, {:mday => 8, :name => "Día de Extremadura", :regions => [:es_ex]}, {:mday => 11, :name => "Fiesta Nacional de Cataluña", :regions => [:es_ct]}], - 4 => [{:mday => 1, :name => "1. april", :regions => [:dk]}, - {:mday => 9, :name => "Danmarks besættelse", :regions => [:dk]}, - {:mday => 16, :name => "Dronningens fødselsdag", :regions => [:dk]}, + 4 => [{:mday => 1, :type => :informal, :name => "1. april", :regions => [:dk]}, + {:mday => 9, :type => :informal, :name => "Danmarks besættelse", :regions => [:dk]}, + {:mday => 16, :type => :informal, :name => "Dronningens fødselsdag", :regions => [:dk]}, {:mday => 23, :name => "San Jorge", :regions => [:es_ar, :es_cl]}, {:mday => 23, :name => "Día de Aragón", :regions => [:es_ar]}, {:mday => 25, :name => "Festa della Liberazione", :regions => [:it]}, diff --git a/lib/holidays/is.rb b/lib/holidays/is.rb index 65b6ae9..ad8c076 100644 --- a/lib/holidays/is.rb +++ b/lib/holidays/is.rb @@ -14,7 +14,7 @@ module Holidays DEFINED_REGIONS = [:is] HOLIDAYS_BY_MONTH = { - 5 => [{:mday => 3, :name => "Sjómannadagurinn", :regions => [:is]}, + 5 => [{:mday => 3, :type => :informal, :name => "Sjómannadagurinn", :regions => [:is]}, {:mday => 17, :name => "Lýðveldisdagurinn", :regions => [:is]}], 0 => [{:function => lambda { |year| easter(year)-48 }, :name => "Bolludagur", :regions => [:is]}, {:function => lambda { |year| easter(year)-47 }, :name => "Sprengidagur", :regions => [:is]}, @@ -31,12 +31,12 @@ module Holidays 11 => [{:mday => 16, :name => "Dagur íslenskrar tungu", :regions => [:is]}], 1 => [{:mday => 1, :name => "Nýársdagur", :regions => [:is]}, {:mday => 6, :name => "Þrettándinn", :regions => [:is]}, - {:mday => 19, :name => "Bóndadagur", :regions => [:is]}], + {:mday => 19, :type => :informal, :name => "Bóndadagur", :regions => [:is]}], 12 => [{:mday => 24, :name => "Jól", :regions => [:is]}, {:mday => 25, :name => "Jól", :regions => [:is]}, {:mday => 26, :name => "Jól", :regions => [:is]}, {:mday => 31, :name => "Gamlárskvöld", :regions => [:is]}], - 2 => [{:mday => 18, :name => "Konudagur", :regions => [:is]}], + 2 => [{:mday => 18, :type => :informal, :name => "Konudagur", :regions => [:is]}], 8 => [{:wday => 1, :week => 1, :name => "Frídagur verslunarmanna", :regions => [:is]}] } diff --git a/lib/holidays/mx.rb b/lib/holidays/mx.rb index db9217b..d3702f8 100644 --- a/lib/holidays/mx.rb +++ b/lib/holidays/mx.rb @@ -16,7 +16,7 @@ module Holidays HOLIDAYS_BY_MONTH = { 5 => [{:mday => 1, :name => "D\xC3\xADa del Trabajo", :regions => [:mx]}, {:mday => 5, :name => "La Batalla de Puebla", :regions => [:mx]}, - {:wday => 0, :week => 3, :name => "Father's Day", :regions => [:us, :ca]}], + {:wday => 0, :week => 3, :type => :informal, :name => "Father's Day", :regions => [:us, :ca]}], 0 => [{:function => lambda { |year| easter(year)-3 }, :name => "Good Thursday", :regions => [:mx]}, {:function => lambda { |year| easter(year)-2 }, :name => "Good Friday", :regions => [:mx, :us]}, {:function => lambda { |year| easter(year) }, :name => "Easter Sunday", :regions => [:mx]}], @@ -27,14 +27,14 @@ module Holidays 12 => [{:mday => 12, :name => "Our Lady of Guadalupe's day", :regions => [:mx]}, {:mday => 25, :name => "Christmas Day", :regions => [:mx]}], 2 => [{:wday => 1, :week => 1, :name => "D\xC3\xADa de la Constituci\xC3\xB3n", :regions => [:mx]}, - {:mday => 2, :name => "Groundhog Day", :regions => [:us, :ca]}, - {:mday => 14, :name => "Valentine's Day", :regions => [:us, :ca]}], + {:mday => 2, :type => :informal, :name => "Groundhog Day", :regions => [:us, :ca]}, + {:mday => 14, :type => :informal, :name => "Valentine's Day", :regions => [:us, :ca]}], 3 => [{:wday => 1, :week => 3, :name => "Natalicio de Benito Ju\xC3\xA1rez", :regions => [:mx]}, - {:mday => 17, :name => "St. Patrick's Day", :regions => [:us, :ca]}], + {:mday => 17, :type => :informal, :name => "St. Patrick's Day", :regions => [:us, :ca]}], 9 => [{:mday => 16, :name => "D\xC3\xADa de Independencia", :regions => [:mx]}], - 4 => [{:mday => 1, :name => "April Fool's Day", :regions => [:us, :ca]}, - {:mday => 22, :name => "Earth Day", :regions => [:us, :ca]}], - 10 => [{:mday => 31, :name => "Halloween", :regions => [:us, :ca]}] + 4 => [{:mday => 1, :type => :informal, :name => "April Fool's Day", :regions => [:us, :ca]}, + {:mday => 22, :type => :informal, :name => "Earth Day", :regions => [:us, :ca]}], + 10 => [{:mday => 31, :type => :informal, :name => "Halloween", :regions => [:us, :ca]}] } # Get the date of Easter in a given year. diff --git a/lib/holidays/nl.rb b/lib/holidays/nl.rb index da624db..08cf42a 100644 --- a/lib/holidays/nl.rb +++ b/lib/holidays/nl.rb @@ -17,11 +17,13 @@ module Holidays 5 => [{:mday => 4, :name => "Dodenherdenking", :regions => [:nl]}, {:mday => 5, :name => "Bevrijdingsdag", :regions => [:nl]}], 0 => [{:function => lambda { |year| easter(year)-2 }, :name => "Goede Vrijdag", :regions => [:nl]}, - {:function => lambda { |year| easter(year) }, :name => "Pasen", :regions => [:nl, :nl]}, - {:function => lambda { |year| easter(year)+40 }, :name => "Hemelvaartsdag", :regions => [:nl]}, - {:function => lambda { |year| easter(year)+49 }, :name => "Pinksteren", :regions => [:nl, :nl]}], + {:function => lambda { |year| easter(year) }, :name => "Pasen", :regions => [:nl]}, + {:function => lambda { |year| easter(year)+1 }, :name => "Pasen", :regions => [:nl]}, + {:function => lambda { |year| easter(year)+39 }, :name => "Hemelvaartsdag", :regions => [:nl]}, + {:function => lambda { |year| easter(year)+49 }, :name => "Pinksteren", :regions => [:nl]}, + {:function => lambda { |year| easter(year)+50 }, :name => "Pinksteren", :regions => [:nl]}], 1 => [{:mday => 1, :name => "Nieuwjaar", :regions => [:nl]}], - 12 => [{:mday => 5, :name => "Sinterklaas", :regions => [:nl]}, + 12 => [{:mday => 5, :type => :informal, :name => "Sinterklaas", :regions => [:nl]}, {:mday => 25, :name => "Kerstmis", :regions => [:nl]}, {:mday => 26, :name => "Kerstmis", :regions => [:nl]}], 4 => [{:mday => 30, :name => "Koninginnedag", :regions => [:nl]}] diff --git a/lib/holidays/north_america.rb b/lib/holidays/north_america.rb index 4def2e3..2f19af8 100644 --- a/lib/holidays/north_america.rb +++ b/lib/holidays/north_america.rb @@ -16,7 +16,7 @@ module Holidays HOLIDAYS_BY_MONTH = { 5 => [{:function => lambda { |year| ca_victoria_day(year) }, :name => "Victoria Day", :regions => [:ca]}, {:function => lambda { |year| ca_victoria_day(year) }, :name => "National Patriotes Day", :regions => [:ca_qc]}, - {:wday => 0, :week => 3, :name => "Father's Day", :regions => [:us, :ca]}, + {:wday => 0, :week => 3, :type => :informal, :name => "Father's Day", :regions => [:us, :ca]}, {:mday => 1, :name => "D\xC3\xADa del Trabajo", :regions => [:mx]}, {:mday => 5, :name => "La Batalla de Puebla", :regions => [:mx]}, {:wday => 1, :week => -1, :name => "Memorial Day", :regions => [:us]}], @@ -46,8 +46,8 @@ module Holidays {:mday => 4, :name => "Independence Day", :regions => [:us]}], 2 => [{:wday => 1, :week => 3, :name => "Family Day", :regions => [:ca_ab, :ca_on, :ca_sk]}, {:wday => 1, :week => 3, :name => "Louis Riel Day", :regions => [:ca_mb]}, - {:mday => 2, :name => "Groundhog Day", :regions => [:us, :ca]}, - {:mday => 14, :name => "Valentine's Day", :regions => [:us, :ca]}, + {:mday => 2, :type => :informal, :name => "Groundhog Day", :regions => [:us, :ca]}, + {:mday => 14, :type => :informal, :name => "Valentine's Day", :regions => [:us, :ca]}, {:wday => 1, :week => 1, :name => "D\xC3\xADa de la Constituci\xC3\xB3n", :regions => [:mx]}], 8 => [{:wday => 1, :week => 1, :name => "BC Day", :regions => [:ca_bc]}, {:wday => 1, :week => 1, :name => "Saskatchewan Day", :regions => [:ca_sk]}, @@ -56,16 +56,16 @@ module Holidays {:wday => 1, :week => 1, :name => "Civic Holiday", :regions => [:ca_on]}, {:wday => 1, :week => 3, :name => "Discovery Day", :regions => [:ca_yk]}], 3 => [{:mday => 23, :name => "St. George's Day", :regions => [:ca_nf]}, - {:mday => 17, :name => "St. Patrick's Day", :regions => [:us, :ca]}, + {:mday => 17, :type => :informal, :name => "St. Patrick's Day", :regions => [:us, :ca]}, {:wday => 1, :week => 3, :name => "Natalicio de Benito Ju\xC3\xA1rez", :regions => [:mx]}, {:wday => 1, :week => 3, :name => "Presidents' Day", :regions => [:us]}], 9 => [{:wday => 1, :week => 1, :name => "Labour Day", :regions => [:ca]}, {:mday => 16, :name => "D\xC3\xADa de Independencia", :regions => [:mx]}, {:wday => 1, :week => 1, :name => "Labor Day", :regions => [:us]}], - 4 => [{:mday => 1, :name => "April Fool's Day", :regions => [:us, :ca]}, - {:mday => 22, :name => "Earth Day", :regions => [:us, :ca]}], + 4 => [{:mday => 1, :type => :informal, :name => "April Fool's Day", :regions => [:us, :ca]}, + {:mday => 22, :type => :informal, :name => "Earth Day", :regions => [:us, :ca]}], 10 => [{:wday => 1, :week => 2, :name => "Thanksgiving", :regions => [:ca]}, - {:mday => 31, :name => "Halloween", :regions => [:us, :ca]}, + {:mday => 31, :type => :informal, :name => "Halloween", :regions => [:us, :ca]}, {:wday => 1, :week => 2, :name => "Columbus Day", :regions => [:us]}] } diff --git a/lib/holidays/us.rb b/lib/holidays/us.rb index a0ff0fb..3c1a2d4 100644 --- a/lib/holidays/us.rb +++ b/lib/holidays/us.rb @@ -15,8 +15,8 @@ module Holidays HOLIDAYS_BY_MONTH = { 5 => [{:wday => 1, :week => -1, :name => "Memorial Day", :regions => [:us]}, - {:wday => 0, :week => 3, :name => "Father's Day", :regions => [:us, :ca]}], - 0 => [{:function => lambda { |year| easter(year)-2 }, :name => "Good Friday", :regions => [:us]}], + {:wday => 0, :week => 3, :type => :informal, :name => "Father's Day", :regions => [:us, :ca]}], + 0 => [{:function => lambda { |year| easter(year)-2 }, :type => :informal, :name => "Good Friday", :regions => [:us]}], 11 => [{:mday => 11, :name => "Veterans Day", :regions => [:us]}, {:wday => 4, :week => 4, :name => "Thanksgiving Day", :regions => [:us]}], 1 => [{:mday => 1, :name => "New Year's Day", :regions => [:us]}, @@ -24,15 +24,15 @@ module Holidays {:function => lambda { |year| us_inauguration_day(year) }, :name => "Inauguration Day", :regions => [:us]}], 12 => [{:mday => 25, :name => "Christmas Day", :regions => [:us]}], 7 => [{:mday => 4, :name => "Independence Day", :regions => [:us]}], - 2 => [{:mday => 2, :name => "Groundhog Day", :regions => [:us, :ca]}, - {:mday => 14, :name => "Valentine's Day", :regions => [:us, :ca]}], + 2 => [{:mday => 2, :type => :informal, :name => "Groundhog Day", :regions => [:us, :ca]}, + {:mday => 14, :type => :informal, :name => "Valentine's Day", :regions => [:us, :ca]}], 3 => [{:wday => 1, :week => 3, :name => "Presidents' Day", :regions => [:us]}, - {:mday => 17, :name => "St. Patrick's Day", :regions => [:us, :ca]}], + {:mday => 17, :type => :informal, :name => "St. Patrick's Day", :regions => [:us, :ca]}], 9 => [{:wday => 1, :week => 1, :name => "Labor Day", :regions => [:us]}], - 4 => [{:mday => 1, :name => "April Fool's Day", :regions => [:us, :ca]}, - {:mday => 22, :name => "Earth Day", :regions => [:us, :ca]}], + 4 => [{:mday => 1, :type => :informal, :name => "April Fool's Day", :regions => [:us, :ca]}, + {:mday => 22, :type => :informal, :name => "Earth Day", :regions => [:us, :ca]}], 10 => [{:wday => 1, :week => 2, :name => "Columbus Day", :regions => [:us]}, - {:mday => 31, :name => "Halloween", :regions => [:us, :ca]}] + {:mday => 31, :type => :informal, :name => "Halloween", :regions => [:us, :ca]}] } # Get the date of Easter in a given year. diff --git a/test/test_region_nl.rb b/test/test_region_nl.rb new file mode 100644 index 0000000..9249fef --- /dev/null +++ b/test/test_region_nl.rb @@ -0,0 +1,31 @@ +require File.dirname(__FILE__) + '/test_helper' +require 'holidays/europe' +class RegionTests < Test::Unit::TestCase + # ==== Netherlands + # New Year's Day 1 January + # Good Friday 21 March + # Easter Sunday 23 March + # Easter Monday 24 March + # Queen's Birthday 30 April + # Ascension Day 1 May + # Liberation Day 5 May + # Whit Sunday 11 May + # Whit Monday 12 May + # Christmas Day 25 December + # Boxing Day 26 December + def test_nl + {Date.civil(2008,1,1) => 'Nieuwjaar', + Date.civil(2008,3,21) => 'Goede Vrijdag', + Date.civil(2008,3,23) => 'Pasen', + Date.civil(2008,3,24) => 'Pasen', + Date.civil(2008,4,30) => 'Koninginnedag', + Date.civil(2008,5,1) => 'Hemelvaartsdag', # Ascension, Easter+39 + Date.civil(2008,5,5) => 'Bevrijdingsdag', + Date.civil(2008,5,11) => 'Pinksteren', # Pentecost, Easter+49 + Date.civil(2008,5,12) => 'Pinksteren', # Pentecost, Easter+50 + Date.civil(2008,12,25) => 'Kerstmis', + Date.civil(2008,12,26) => 'Kerstmis'}.each do |date, name| + assert_equal name, Holidays.on(date, :nl)[0][:name] + end + end +end