Class: Dovico::Project

Inherits:
Assignment show all
Defined in:
lib/dovico/model/project.rb

Constant Summary

Constants inherited from Assignment

Assignment::URL_PATH

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.allObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 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_allObject



30
31
32
33
# 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) ⇒ Object



8
9
10
11
12
# File 'lib/dovico/model/project.rb', line 8

def self.parse(hash)
  project = super(hash)
  project.tasks ||= []
  project
end

Instance Method Details

#to_sObject



35
36
37
38
39
40
41
42
43
44
45
46
47
# 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