# Great Britain/United Kingdom holiday definitions for the Ruby Holiday gem. # # Including England, Wales, Scotland, N. Ireland, the Isle of Man, Guernsey # and Jersey. # # Updated: 2008-11-28. # Sources: # - http://en.wikipedia.org/wiki/List_of_holidays_by_country#United_Kingdom_and_Crown_dependencies # # Notes: # - Jersey, Guernsey and the Isle of Man are encode with both their ISO 3166-1 and ISO 3-3166-2 codes. # - England and Wales together should be encoded as [gb_eng, gb_wls, gb_eaw...] --- months: 0: - name: Good Friday regions: [gb] function: easter(year)-2 - name: Easter Sunday regions: [gb] function: easter(year) - name: Easter Monday regions: [gb_eng, gb_wls, gb_eaw, gb_nir] function: easter(year)+1 1: - name: New Year's Day regions: [gb] mday: 1 - name: New Year's regions: [gb_sct] mday: 2 3: - name: St. Piran's Day regions: [gb_con] mday: 5 - name: St. Patrick's Day regions: [gb_nir] mday: 17 5: - name: May Day regions: [gb] week: 1 wday: 1 - name: Liberation Day regions: [je, gb_jsy, gg, gb_gsy] mday: 9 - name: Bank Holiday regions: [gb] week: -1 wday: 1 7: - name: Tynwald Day regions: [im, gb_iom] mday: 5 - name: Battle of the Boyne regions: [gb_nir] mday: 12 8: - name: Bank Holiday regions: [gb_sct] week: 1 wday: 1 - name: Bank Holiday regions: [gb_eng, gb_wls, gb_eaw, gb_nir] week: -1 wday: 1 11: - name: Guy Fawkes Day regions: [gb] mday: 5 type: informal 12: - name: Christmas Day regions: [gb] mday: 25 observed: to_monday_if_weekend - name: Boxing Day regions: [gb] mday: 26 observed: to_weekday_if_boxing_weekend tests: | {Date.civil(2008,1,1) => 'New Year\'s Day', Date.civil(2008,3,21) => 'Good Friday', Date.civil(2008,3,23) => 'Easter Sunday', Date.civil(2008,5,5) => 'May Day', Date.civil(2008,5,26) => 'Bank Holiday', Date.civil(2008,11,5) => 'Guy Fawkes Day', Date.civil(2008,12,25) => 'Christmas Day', Date.civil(2008,12,26) => 'Boxing Day'}.each do |date, name| assert_equal name, (Holidays.on(date, :gb, :informal)[0] || {})[:name] end assert_equal 'St. Patrick\'s Day', Date.civil(2008,3,17).holidays(:gb_nir, :informal)[0][:name] assert_equal 'Christmas Day', Date.civil(2008,12,25).holidays(:gb_, :observed)[0][:name] assert_equal 'Christmas Day', Date.civil(2009,12,25).holidays(:gb_, :observed)[0][:name] assert_equal 'Christmas Day', Date.civil(2010,12,27).holidays(:gb_, :observed)[0][:name] assert_equal 'Boxing Day', Date.civil(2008,12,26).holidays(:gb_, :observed)[0][:name] assert_equal 'Boxing Day', Date.civil(2009,12,28).holidays(:gb_, :observed)[0][:name] assert_equal 'Boxing Day', Date.civil(2010,12,28).holidays(:gb_, :observed)[0][:name] [:gb_wls, :gb_eng, :gb_nir, :gb_eaw, :gb_].each do |r| assert_equal 'Easter Monday', Date.civil(2008,3,24).holidays(r)[0][:name] assert_equal 'Bank Holiday', Date.civil(2008,8,25).holidays(r)[0][:name] end