Skip to content

Commit

Permalink
Merge pull request #63 from ghiculescu/master
Browse files Browse the repository at this point in the history
Add observed holiday rules for Australia
  • Loading branch information
alexdunae committed Mar 26, 2014
2 parents 9f55c94 + 69ad17e commit d96ef49
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 8 deletions.
2 changes: 1 addition & 1 deletion README.md
Expand Up @@ -50,7 +50,7 @@ Get informal holidays in February.
from = Date.civil(2008,2,1)
to = Date.civil(2008,2,15)

Holidays.between(from, to)
Holidays.between(from, to, :informal)
=> [{:name => 'Valentine\'s Day',...}]

### Extending Ruby's Date class
Expand Down
10 changes: 10 additions & 0 deletions data/au.yaml
Expand Up @@ -27,9 +27,11 @@ months:
- name: New Year's Day
regions: [au]
mday: 1
observed: to_monday_if_weekend
- name: Australia Day
regions: [au]
mday: 26
observed: to_monday_if_weekend
3:
- name: Labour Day
regions: [au_wa]
Expand All @@ -47,6 +49,7 @@ months:
- name: ANZAC Day
regions: [au]
mday: 25
observed: to_monday_if_weekend
5:
- name: Labour Day
regions: [au_qld]
Expand Down Expand Up @@ -81,16 +84,20 @@ months:
- name: Labour Day
regions: [au_qld]
function: qld_labour_day_october(year)
observed: to_monday_if_weekend
- name: Queen's Birthday
regions: [au_qld]
function: qld_queens_bday_october(year)
observed: to_monday_if_weekend
12:
- name: Christmas Day
regions: [au]
mday: 25
observed: to_monday_if_weekend
- name: Boxing Day
regions: [au]
mday: 26
observed: to_weekday_if_boxing_weekend
methods:
qld_queens_bday_october: |
# http://www.justice.qld.gov.au/fair-and-safe-work/industrial-relations/public-holidays/dates
Expand Down Expand Up @@ -145,3 +152,6 @@ tests: |
assert_equal "Queen's Birthday", Date.civil(2012,6,11).holidays(:au_qld)[0][:name]
assert_equal "Queen's Birthday", Date.civil(2012,10,1).holidays(:au_qld)[0][:name]
assert_equal "Queen's Birthday", Date.civil(2013,6,10).holidays(:au_qld)[0][:name]
assert_equal 'Australia Day', Date.civil(2014,1,26).holidays(:au_qld)[0][:name]
assert_equal 'Australia Day', Date.civil(2014,1,27).holidays(:au_qld, :observed)[0][:name]
14 changes: 7 additions & 7 deletions lib/holidays/au.rb
Expand Up @@ -23,23 +23,23 @@ def self.holidays_by_month
{:function => lambda { |year| Holidays.easter(year) }, :function_id => "easter(year)", :name => "Easter Sunday", :regions => [:au_nsw]},
{:function => lambda { |year| Holidays.easter(year)+1 }, :function_id => "easter(year)+1", :name => "Easter Monday", :regions => [:au]},
{:function => lambda { |year| Holidays.easter(year)+2 }, :function_id => "easter(year)+2", :name => "Easter Monday", :regions => [:au_tas]}],
1 => [{:mday => 1, :name => "New Year's Day", :regions => [:au]},
{:mday => 26, :name => "Australia Day", :regions => [:au]}],
1 => [{:mday => 1, :observed => lambda { |date| Holidays.to_monday_if_weekend(date) }, :observed_id => "to_monday_if_weekend", :name => "New Year's Day", :regions => [:au]},
{:mday => 26, :observed => lambda { |date| Holidays.to_monday_if_weekend(date) }, :observed_id => "to_monday_if_weekend", :name => "Australia Day", :regions => [:au]}],
3 => [{:wday => 1, :week => 1, :name => "Labour Day", :regions => [:au_wa]},
{:wday => 1, :week => 2, :name => "Eight Hours Day", :regions => [:au_tas]},
{:wday => 1, :week => 2, :name => "Labour Day", :regions => [:au_vic]}],
4 => [{:mday => 25, :name => "ANZAC Day", :regions => [:au]}],
4 => [{:mday => 25, :observed => lambda { |date| Holidays.to_monday_if_weekend(date) }, :observed_id => "to_monday_if_weekend", :name => "ANZAC Day", :regions => [:au]}],
5 => [{:function => lambda { |year| Holidays.qld_labour_day_may(year) }, :function_id => "qld_labour_day_may(year)", :name => "Labour Day", :regions => [:au_qld]},
{:wday => 1, :week => 1, :name => "May Day", :regions => [:au_nt]}],
6 => [{:wday => 1, :week => 1, :name => "Foundation Day", :regions => [:au_wa]},
{:wday => 1, :week => 2, :name => "Queen's Birthday", :regions => [:au_act, :au_nsw, :au_sa, :au_qld, :au_tas, :au_nt, :au_vic]},
{:mday => 6, :type => :informal, :name => "Queensland Day", :regions => [:au_qld]}],
8 => [{:wday => 3, :week => -3, :name => "Ekka", :regions => [:au_qld_brisbane]}],
10 => [{:wday => 1, :week => 1, :name => "Labour Day", :regions => [:au_act, :au_nsw, :au_sa]},
{:function => lambda { |year| Holidays.qld_labour_day_october(year) }, :function_id => "qld_labour_day_october(year)", :name => "Labour Day", :regions => [:au_qld]},
{:function => lambda { |year| Holidays.qld_queens_bday_october(year) }, :function_id => "qld_queens_bday_october(year)", :name => "Queen's Birthday", :regions => [:au_qld]}],
12 => [{:mday => 25, :name => "Christmas Day", :regions => [:au]},
{:mday => 26, :name => "Boxing Day", :regions => [:au]}]
{:function => lambda { |year| Holidays.qld_labour_day_october(year) }, :function_id => "qld_labour_day_october(year)", :observed => lambda { |date| Holidays.to_monday_if_weekend(date) }, :observed_id => "to_monday_if_weekend", :name => "Labour Day", :regions => [:au_qld]},
{:function => lambda { |year| Holidays.qld_queens_bday_october(year) }, :function_id => "qld_queens_bday_october(year)", :observed => lambda { |date| Holidays.to_monday_if_weekend(date) }, :observed_id => "to_monday_if_weekend", :name => "Queen's Birthday", :regions => [:au_qld]}],
12 => [{:mday => 25, :observed => lambda { |date| Holidays.to_monday_if_weekend(date) }, :observed_id => "to_monday_if_weekend", :name => "Christmas Day", :regions => [:au]},
{:mday => 26, :observed => lambda { |date| Holidays.to_weekday_if_boxing_weekend(date) }, :observed_id => "to_weekday_if_boxing_weekend", :name => "Boxing Day", :regions => [:au]}]
}
end
end
Expand Down
3 changes: 3 additions & 0 deletions test/defs/test_defs_au.rb
Expand Up @@ -42,5 +42,8 @@ def test_au
assert_equal "Queen's Birthday", Date.civil(2012,10,1).holidays(:au_qld)[0][:name]
assert_equal "Queen's Birthday", Date.civil(2013,6,10).holidays(:au_qld)[0][:name]

assert_equal 'Australia Day', Date.civil(2014,1,26).holidays(:au_qld)[0][:name]
assert_equal 'Australia Day', Date.civil(2014,1,27).holidays(:au_qld, :observed)[0][:name]

end
end

0 comments on commit d96ef49

Please sign in to comment.