Class: Spud::Events::CalendarBuilder
- Inherits:
-
TableBuilder
- Object
- TableBuilder
- Spud::Events::CalendarBuilder
- Defined in:
- lib/spud_events/calendar_builder.rb
Instance Method Summary collapse
- #day(*args, &block) ⇒ Object
-
#initialize(objects, template, calendar, options) ⇒ CalendarBuilder
constructor
A new instance of CalendarBuilder.
Methods inherited from TableBuilder
#body, #body_r, #d, #h, #head, #head_r, #r
Constructor Details
#initialize(objects, template, calendar, options) ⇒ CalendarBuilder
Returns a new instance of CalendarBuilder.
4 5 6 7 8 |
# File 'lib/spud_events/calendar_builder.rb', line 4 def initialize(objects, template, calendar, ) super(objects, template, ) @calendar = calendar.new() @today = [:today] || Time.now end |
Instance Method Details
#day(*args, &block) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/spud_events/calendar_builder.rb', line 10 def day(*args,&block) raise ArgumentError, "Missing block" unless block_given? = (args) day_method = .delete(:day_method) || :start_at id_pattern = .delete(:id) activity_class = .delete(:activity) output = "" @calendar.objects_for_days(@objects, day_method).to_a.sort{|a1, a2| a1.first <=> a2.first }.each do |o| key, array = o day, objects = array output << @template.tag(:tr,,true) if (day.wday == @calendar.first_weekday) output << @template.tag(:td,(day, id_pattern, (objects.empty? ? nil: activity_class)), true) output << @template.with_output_buffer{block.call(day, objects)} output << '</td>' output << '</tr>' if (day.wday == @calendar.last_weekday) end @template.content_tag(:tbody, output.html_safe, {}, false) end |