module Holidays::NZ

def self.custom_methods

def self.custom_methods
  {
      "closest_monday(date)" => Proc.new { |date|
1, 2, 3, 4].include?(date.wday)
te -= (date.wday - 1)
f 0 == date.wday
te += 1

te += 8 - date.wday

vious_friday(date)" => Proc.new { |date|
 - 3
t_week(date)" => Proc.new { |date|
 + 7
ariki(year)" => Proc.new { |year|
ariki_dates ||= {
2' => Date.civil(2022, 6, 24),
3' => Date.civil(2023, 7, 14),
4' => Date.civil(2024, 6, 28),
5' => Date.civil(2025, 6, 20),
6' => Date.civil(2026, 7, 10),
7' => Date.civil(2027, 6, 25),
8' => Date.civil(2028, 7, 14),
9' => Date.civil(2029, 7, 6),
0' => Date.civil(2030, 6, 21),
1' => Date.civil(2031, 7, 11),
2' => Date.civil(2032, 7, 2),
3' => Date.civil(2033, 6, 24),
4' => Date.civil(2034, 7, 7),
5' => Date.civil(2035, 6, 29),
6' => Date.civil(2036, 7, 18),
7' => Date.civil(2037, 7, 10),
8' => Date.civil(2038, 6, 25),
9' => Date.civil(2039, 7, 15),
0' => Date.civil(2040, 7, 6),
1' => Date.civil(2041, 7, 19),
2' => Date.civil(2042, 7, 11),
3' => Date.civil(2043, 7, 3),
4' => Date.civil(2044, 6, 24),
5' => Date.civil(2045, 7, 7),
6' => Date.civil(2046, 6, 29),
7' => Date.civil(2047, 7, 19),
8' => Date.civil(2048, 7, 3),
9' => Date.civil(2049, 6, 25),
0' => Date.civil(2050, 7, 15),
1' => Date.civil(2051, 6, 30),
2' => Date.civil(2052, 6, 21),
ariki_dates[year.to_s]
  }
end

def self.defined_regions

:nodoc:
All the definitions are available at https://github.com/holidays/holidays

Definitions loaded: definitions/nz.yaml

This file is generated by the Ruby Holidays gem.
def self.defined_regions
  [:nz, :nz_sl, :nz_we, :nz_ak, :nz_nl, :nz_ne, :nz_ot, :nz_ta, :nz_sc, :nz_hb, :nz_mb, :nz_ca, :nz_ch, :nz_wl]
end

def self.holidays_by_month

def self.holidays_by_month
  {
            0 => [{:function => "easter(year)", :function_arguments => [:year], :function_modifier => -2, :name => "Good Friday", :regions => [:nz]},
        {:function => "easter(year)", :function_arguments => [:year], :function_modifier => 1, :name => "Easter Monday", :regions => [:nz]},
        {:function => "matariki(year)", :function_arguments => [:year], :name => "Matariki", :regions => [:nz]}],
  1 => [{:mday => 1, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "New Year's Day", :regions => [:nz]},
        {:mday => 2, :observed => "to_weekday_if_boxing_weekend(date)", :observed_arguments => [:date], :name => "Day after New Year's Day", :regions => [:nz]},
        {:mday => 17, :name => "Southland Anniversary Day", :regions => [:nz_sl]},
        {:mday => 22, :observed => "closest_monday(date)", :observed_arguments => [:date], :name => "Wellington Anniversary Day", :regions => [:nz_we]},
        {:mday => 29, :observed => "closest_monday(date)", :observed_arguments => [:date], :name => "Auckland Anniversary Day", :regions => [:nz_ak]},
        {:mday => 29, :observed => "closest_monday(date)", :observed_arguments => [:date], :name => "Northland Anniversary Day", :regions => [:nz_nl]}],
  2 => [{:mday => 1, :observed => "closest_monday(date)", :observed_arguments => [:date], :name => "Nelson Anniversary Day", :regions => [:nz_ne]},
        {:mday => 6, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Waitangi Day", :regions => [:nz]}],
  3 => [{:mday => 23, :observed => "closest_monday(date)", :observed_arguments => [:date], :name => "Otago Anniversary Day", :regions => [:nz_ot]},
        {:wday => 1, :week => 2, :observed => "closest_monday(date)", :observed_arguments => [:date], :name => "Taranaki Anniversary Day", :regions => [:nz_ta]}],
  4 => [{:mday => 25, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "ANZAC Day", :regions => [:nz]}],
  6 => [{:wday => 1, :week => 1, :name => "Queen's Birthday", :regions => [:nz]}],
  9 => [{:wday => 1, :week => 4, :name => "Dominion Day", :regions => [:nz_sc]}],
  10 => [{:wday => 1, :week => 1, :observed => "previous_friday(date)", :observed_arguments => [:date], :name => "Hawke's bay Anniversary Day", :regions => [:nz_hb]},
        {:wday => 1, :week => 4, :name => "Labour Day", :regions => [:nz]},
        {:wday => 1, :week => 4, :observed => "next_week(date)", :observed_arguments => [:date], :name => "Marlborough Anniversary Day", :regions => [:nz_mb]}],
  11 => [{:wday => 5, :week => 2, :name => "Canterbury Anniversary Day", :regions => [:nz_ca]},
        {:mday => 30, :observed => "closest_monday(date)", :observed_arguments => [:date], :name => "Chatham Island Anniversary Day", :regions => [:nz_ch]}],
  12 => [{:mday => 1, :observed => "closest_monday(date)", :observed_arguments => [:date], :name => "Westland Anniversary Day", :regions => [:nz_wl]},
        {:mday => 25, :observed => "to_monday_if_weekend(date)", :observed_arguments => [:date], :name => "Christmas Day", :regions => [:nz]},
        {:mday => 26, :observed => "to_weekday_if_boxing_weekend(date)", :observed_arguments => [:date], :name => "Boxing Day", :regions => [:nz]}]
  }
end