class TimetrapToggl::Output

Constants

FAILED_HEADER
LINE_DIVIDER
SUBMITTED_HEADER

Attributes

projects[R]
results[R]

Public Class Methods

new(results, projects) click to toggle source
# File lib/timetrap_toggl/output.rb, line 8
def initialize(results, projects)
  @results = results
  @projects = projects
end

Public Instance Methods

generate() click to toggle source
# File lib/timetrap_toggl/output.rb, line 13
def generate
  messages = [stats]

  unless submitted.empty?
    messages << SUBMITTED_HEADER
    messages += submitted.map do |submitted|
      project = projects.find { |p| p["id"] == submitted["pid"] }
      success_message("#{project["name"]} - #{submitted["description"]}")
    end
    messages << "\n"
  end

  unless failed.empty?
    messages << FAILED_HEADER
    messages += failed.map do |failed|
      project = projects.find { |p| p["id"] == failed["pid"] }
      failed_message(failed[:note], failed[:error])
    end
    messages << "\n"
  end

  messages.join("\n")
end

Private Instance Methods

failed() click to toggle source
# File lib/timetrap_toggl/output.rb, line 47
def failed
  results.fetch(:failed, [])
end
failed_message(note, error) click to toggle source
# File lib/timetrap_toggl/output.rb, line 55
def failed_message(note, error)
  "Failed (#{error}): #{note}"
end
stats() click to toggle source
# File lib/timetrap_toggl/output.rb, line 39
def stats
  "Submitted: #{submitted.count}\nFailed: #{failed.count}\n"
end
submitted() click to toggle source
# File lib/timetrap_toggl/output.rb, line 43
def submitted
  results.fetch(:submitted, [])
end
success_message(note) click to toggle source
# File lib/timetrap_toggl/output.rb, line 51
def success_message(note)
  "Submitted: #{note}"
end