DynamicCalendarHelperを使ってみた
Railsで簡単にカレンダー機能を実装できる、 DynamicCalendarHelperを使ってみました。
まずはプラグインのインストール。
script/plugin install http://topfunky.net/svn/plugins/calendar_helper/
続いて、DynamicCalendarHelper用のスタイルシートを取り込みます。
./script/generate calendar_styles
これで、public/stylesheets/calendarディレクトリの下に、red、blue、grayの三つのディレクトリとその配下にそれぞれstyle.cssファイルが配置されます。実際に、このスタイルシートをデフォルトのまま使うことはないと思うし、スタイルシートが三種類必要になることもあまりない気がします。
土日はdivのclass属性でweekendが設定されます。休日の色を変えたいときはこれを使って設定すればいいと思うけど、土曜日は水色に、日曜日はピンクにしたいときはちょっと困ります。なので、ぼくはcalendar_helper.rbに以下のメソッドを追加してみました。
def saturday?(date)
[6].include?(date.wday)
end
これは実際にはprivateであって、calendarメソッドの中で週末判定時に以下の文を追加しておきます。
cal << " saturday" if saturday?(d)
cell_attrs[:class] += " saturday" if saturday?(cur)
ソースコードを見れば一目瞭然だと思います。
これに日本の祝日判定の処理を追加して公開すればちょっと便利そうです。ヒマなときにでも作ってみましょうか。