お題:与えられた年月のカレンダーを表示せよ。

回答例と出力例:
require 'date'
def weeks(year, mon)
first, last = Date.new(year, mon, 1), Date.new(year, mon, -1)
weeks = (first..last).inject([]) {|ws, d| d.day == 1 || d.wday == 0 ? ws << [d] : ws.last << d; ws}
weeks[0] = [nil] * (7 - weeks.first.size) + weeks.first
weeks[-1] = weeks.last + [nil] * (7 - weeks.last.size)
weeks
end
def calendar(year, mon)
weeks(year, mon).map {|days| days.map {|d| d ? "%2d" % d.day : ' '}.join(' ')}
end
def yearmon(date = Date.today)
[date.year, date.mon]
end
puts calendar(*yearmon)
↓
ttp://codepad.org/HvvYuSMi