class Haora::WeekRenderer

Public Instance Methods

render(week_days) click to toggle source
# File lib/haora/week_renderer.rb, line 5
def render(week_days)
  days = rendered_days(week_days)
  if days.length > 0
    days << $/ << rendered_total(week_days)
  else
    'none'
  end
end

Private Instance Methods

rendered_date(date) click to toggle source
# File lib/haora/week_renderer.rb, line 37
def rendered_date(date)
  date.strftime('%a %d.%m.%Y')
end
rendered_day(day) click to toggle source
# File lib/haora/week_renderer.rb, line 29
def rendered_day(day)
  start = day.tasks.first.start
  stop = day.tasks.last.stop
  '%s %s = %s' % [rendered_date(day.date),
                  rendered_timespan(start, stop),
                  rendered_duration(day.hours)]
end
rendered_days(days) click to toggle source
# File lib/haora/week_renderer.rb, line 16
def rendered_days(days)
  days.select { |day| day.tasks.length > 0 }
      .collect { |day| rendered_day(day) }
      .join($/)
end
rendered_total(days) click to toggle source
# File lib/haora/week_renderer.rb, line 22
def rendered_total(days)
  hours = days.select { |day| day.tasks.length > 0 }
              .collect { |day| day.hours }
              .reduce(:+)
  '                       Total = %s' % rendered_duration(hours)
end