Sha256: 8eec66c562cc33e6ea23a049317a24a2193f17cbe1362f111dc11bf055a87b58
Contents?: true
Size: 1022 Bytes
Versions: 4
Compression:
Stored size: 1022 Bytes
Contents
module Dovico class TimeEntryFormatter def initialize(projects) @projects = projects end def format_entries(time_entries) text = "" time_entries.map do |time_entry| text += "#{}" time_entry_text(time_entry) end.join("\n") end private attr_accessor :projects def time_entry_text(time_entry) project, task = project_task(time_entry.project_id, time_entry.task_id) progress_bar_width = (time_entry.total_hours.to_f * 2).to_i sprintf("%s [%s] %s : [%8s] %2sh %s %s", time_entry.date, "×" * progress_bar_width, " " * [16 - progress_bar_width, 0].max, time_entry.formal_sheet_status, time_entry.total_hours, project.name, task.name, ) end def project_task(project_id, task_id) project = projects.select{ |project| project.id == project_id }.first task = project.tasks.select{ |task| task.id == task_id }.first [project, task] end end end
Version data entries
4 entries across 4 versions & 1 rubygems