Skip to content
/ seasonal Public

ruby gem for writing logic based on defined date and time events

Notifications You must be signed in to change notification settings

mmb/seasonal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Create a calendar of date and time events, attach arbitrary objects to them
and ask which objects are current at any point in time.

Uses the flexible time parsing of Time.parse to be easy to use and the
timezone and DST handling of tzinfo.

Originally conceived for making web sites look and behave differently depending
on the time of day or year.

Example (print holiday greetings):


require 'seasonal'

holidays = Seasonal::Calendar.new

holidays.push(Seasonal::Event.new('Merry Christmas', 'America/New_York',
  :on => 'dec 25'))
holidays.push(Seasonal::Event.new("April Fool's Day", 'America/New_York',
  :on => 'apr 1'))

holidays.going_on { |e| puts e }

Example (make text red between 9:00 and 10:00 am):


require 'seasonal'

colors = Seasonal::Calendar.new

colors.push(Seasonal::Event.new('#ff0000', 'America/New_York',
  :start => '9:00am', :end => '10:00am'))

color = colors.going_on(:or_if_none => '#000000')
puts "<p style=\"background-color : #{color}\">test</p>"

Example (sale ends Jul 10):


require 'seasonal'

sales = Seasonal::Calendar.new

sales.push(Seasonal::Event.new('Everything on sale', 'America/New_York',
  :end => 'jul 10 2009'))

sales.going_on { |e| puts e }

About

ruby gem for writing logic based on defined date and time events

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages