class Dovico::Project

Public Class Methods

all() click to toggle source
# File lib/dovico/model/project.rb, line 14
def self.all
  projects_search = ApiClient.get(URL_PATH)
  projects = projects_search["Assignments"].map {|project_hash| parse(project_hash) }

  projects.each do |project|
    tasks_search = ApiClient.get("#{URL_PATH}/#{project.assignement_id}")
    tasks = tasks_search["Assignments"].map {|task_hash| Task.parse(task_hash) }

    project.tasks = tasks.sort_by do |task|
      task.id
    end
  end

  projects
end
format_all() click to toggle source
# File lib/dovico/model/project.rb, line 30
def self.format_all
  text = " Project | Task | Description\n"
  text += all.map(&:to_s).join("\n")
end
parse(hash) click to toggle source
Calls superclass method Dovico::Assignment::parse
# File lib/dovico/model/project.rb, line 8
def self.parse(hash)
  project = super(hash)
  project.tasks ||= []
  project
end

Public Instance Methods

to_s() click to toggle source
# File lib/dovico/model/project.rb, line 35
def to_s
  text = ''

  if tasks.count > 0
    text += tasks.map do |task|
      sprintf " %7d | %4d | %s: %s", id, task.id, name, task.name
    end.join("\n")
  else
    text += sprintf " %7d |      | %s (No tasks linked)", id, name
  end

  text
end