2007-11-20 20:54:55 +01:00
|
|
|
= Ruby Holidays Gem
|
2007-11-20 01:58:20 +01:00
|
|
|
|
2007-11-30 05:36:08 +01:00
|
|
|
A set of functions to deal with holidays in Ruby.
|
2008-12-30 20:40:21 +01:00
|
|
|
|
2007-11-20 20:54:55 +01:00
|
|
|
Extends Ruby's built-in Date class and supports custom holiday definition lists.
|
2008-12-30 20:40:21 +01:00
|
|
|
|
2007-11-30 05:36:08 +01:00
|
|
|
=== Installation
|
2008-12-30 20:40:21 +01:00
|
|
|
|
2010-11-12 23:43:52 +01:00
|
|
|
To install the gem from RubyGems:
|
2008-12-30 20:40:21 +01:00
|
|
|
|
2010-11-12 23:43:52 +01:00
|
|
|
gem install holidays
|
2008-12-30 20:40:21 +01:00
|
|
|
|
2007-11-20 20:54:55 +01:00
|
|
|
=== Examples
|
2008-12-30 20:40:21 +01:00
|
|
|
|
2007-11-30 05:36:08 +01:00
|
|
|
For more information, see the notes at the top of the Holidays module.
|
2008-12-30 20:40:21 +01:00
|
|
|
|
2007-11-20 20:54:55 +01:00
|
|
|
==== Using the Holidays class
|
2007-11-30 05:36:08 +01:00
|
|
|
Get all holidays on April 25, 2008 in Australia.
|
2007-11-20 20:54:55 +01:00
|
|
|
date = Date.civil(2008,4,25)
|
2008-12-30 20:40:21 +01:00
|
|
|
|
2007-12-19 23:25:56 +01:00
|
|
|
Holidays.on(date, :au)
|
2007-11-20 20:54:55 +01:00
|
|
|
=> [{:name => 'ANZAC Day',...}]
|
2008-12-30 20:40:21 +01:00
|
|
|
|
2007-11-30 05:36:08 +01:00
|
|
|
Get holidays that are observed on July 2, 2007 in British Columbia, Canada.
|
|
|
|
date = Date.civil(2007,7,2)
|
2008-12-30 20:40:21 +01:00
|
|
|
|
2007-12-19 23:25:56 +01:00
|
|
|
Holidays.on(date, :ca_bc, :observed)
|
2007-11-30 05:36:08 +01:00
|
|
|
=> [{:name => 'Canada Day',...}]
|
2008-12-30 20:40:21 +01:00
|
|
|
|
2007-11-30 05:36:08 +01:00
|
|
|
Get all holidays in July, 2008 in Canada and the US.
|
2007-11-20 20:54:55 +01:00
|
|
|
from = Date.civil(2008,7,1)
|
2008-12-30 20:40:21 +01:00
|
|
|
to = Date.civil(2008,7,31)
|
|
|
|
|
2007-11-30 05:36:08 +01:00
|
|
|
Holidays.between(from, to, :ca, :us)
|
2007-11-20 20:54:55 +01:00
|
|
|
=> [{:name => 'Canada Day',...}
|
2007-11-30 01:49:33 +01:00
|
|
|
{:name => 'Independence Day',...}]
|
2008-12-30 20:40:21 +01:00
|
|
|
|
2007-11-30 05:36:08 +01:00
|
|
|
Get informal holidays in February.
|
|
|
|
from = Date.civil(2008,2,1)
|
2008-12-30 20:40:21 +01:00
|
|
|
to = Date.civil(2008,2,15)
|
|
|
|
|
2007-11-30 05:36:08 +01:00
|
|
|
Holidays.between(from, to)
|
|
|
|
=> [{:name => 'Valentine\'s Day',...}]
|
2008-12-30 20:40:21 +01:00
|
|
|
|
|
|
|
|
2007-11-20 20:54:55 +01:00
|
|
|
==== Extending Ruby's Date class
|
2007-11-30 05:36:08 +01:00
|
|
|
Check which holidays occur in Iceland on January 1, 2008.
|
|
|
|
d = Date.civil(2008,7,1)
|
2008-12-30 20:40:21 +01:00
|
|
|
|
2007-11-30 05:36:08 +01:00
|
|
|
d.holidays(:is)
|
|
|
|
=> [{:name => 'Nýársdagur'}...]
|
2008-12-30 20:40:21 +01:00
|
|
|
|
2007-11-30 05:36:08 +01:00
|
|
|
Lookup Canada Day in different regions.
|
|
|
|
d = Date.civil(2008,7,1)
|
2008-12-30 20:40:21 +01:00
|
|
|
|
|
|
|
d.holiday?(:ca) # Canada
|
2007-11-30 05:36:08 +01:00
|
|
|
=> true
|
2008-12-30 20:40:21 +01:00
|
|
|
|
|
|
|
d.holiday?(:ca_bc) # British Columbia, Canada
|
2007-11-30 05:36:08 +01:00
|
|
|
=> true
|
2008-12-30 20:40:21 +01:00
|
|
|
|
|
|
|
d.holiday?(:fr) # France
|
2007-11-30 05:36:08 +01:00
|
|
|
=> false
|
2008-12-30 20:40:21 +01:00
|
|
|
|
2007-11-20 20:54:55 +01:00
|
|
|
=== Credits and code
|
2008-12-30 20:40:21 +01:00
|
|
|
|
2010-11-12 22:36:52 +01:00
|
|
|
* Source: https://github.com/alexdunae/holidays
|
|
|
|
* Docs: http://rdoc.info/github/alexdunae/holidays/master/frames
|
|
|
|
* Contributors: https://github.com/alexdunae/holidays/contributors
|
2008-12-30 20:40:21 +01:00
|
|
|
|
2010-11-12 22:36:52 +01:00
|
|
|
Started by Alex Dunae (dunae.ca, e-mail 'code' at the same domain), 2007-10.
|
2008-12-30 20:40:21 +01:00
|
|
|
|
|
|
|
Made on Vancouver Island.
|