A simple helper for creating an HTML calendar. The “calendar” method will be automatically available to your Rails view templates, or can be used with Sinatra or other webapps.
Some example stylesheets are provided via the Rails asset pipeline. Add to your main stylesheet with one of the following:
/* *= require 'calendar_styles/grey' * OR *= require 'calendar_styles/red' * OR *= require 'calendar_styles/blue' */
# Simple calendar(:year => 2005, :month => 6) # Set table class calendar({:year => 2005, :month => 6, :table_class => "calendar_helper"}) # Full featured calendar(:year => 2005, :month => 5) do |d| # This generates a simple calendar, but gives special days if listOfSpecialDays.include?(d) # (days that are in the array listOfSpecialDays) one CSS class, [d.mday, {:class => "specialDay"}] # "specialDay", and gives the rest of the days another CSS class, else # "normalDay". You can also use this highlight today differently [d.mday, {:class => "normalDay"}] # from the rest of the days, etc. end end
If using with ERb (Rails), put in a printing tag.
<%= calendar(:year => @year, :month => @month, :first_day_of_week => 1) do |d| render_calendar_cell(d) end %>
With Haml, use a helper to set options for each cell.
= calendar(:year => @year, :month => @month, :first_day_of_week => 1) do |d| - render_calendar_cell(d)
In Sinatra, include the CalendarHelper module in your helpers:
helpers do include CalendarHelper end
-
The table tag has a summary attribute (overridable).
-
Each th has an id.
-
Each td as a headers attribute, containing the element id of the appropriate th.
Jeremy Voorhis – jvoorhis.com Original implementation
Geoffrey Grosenbach – nubyonrails.com Test suite and conversion to a Rails plugin
-
Jarkko Laine jlaine.net/
-
Tom Armitage infovore.org
-
Bryan Larsen larsen.st
-
Eric Anderson saveyourcall.com
See the RDoc (or use “rake rdoc”).
To copy the CSS files, use
./script/generate calendar_styles
CSS will be copied to subdirectories of public/stylesheets/calendar.