Class: Bl::Project

Inherits:
Thor
  • Object
show all
Includes:
Requestable
Defined in:
lib/bl/project.rb

Instance Method Summary collapse

Methods included from Requestable

client

Constructor Details

#initializeProject

Returns a new instance of Project.



5
6
7
8
9
# File 'lib/bl/project.rb', line 5

def initialize(*)
  @config = Bl::Config.instance
  @url = 'projects'
  super
end

Instance Method Details

#listObject



12
13
14
15
16
# File 'lib/bl/project.rb', line 12

def list
  client.get(@url).body.each do |p|
    puts [p.id, p.projectKey, p.name].join("\t")
  end
end

#progress(id) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/bl/project.rb', line 33

def progress(id)
  puts '--status--'
  all_issues_count = count_issues(id)
  closed_issues_count = count_issues(id, statusId: [4])
  puts "#{closed_issues_count} / #{all_issues_count}"
  puts '--milestone--'
  versions = client.get("projects/#{@config[:project_key]}/versions").body
  versions.each do |version|
    all_issues_count = count_issues(id, versionId: [version.id])
    closed_issues_count = count_issues(id, versionId: [version.id], statusId: [4])
    puts "#{version.name}: #{closed_issues_count} / #{all_issues_count}"
  end
  puts '--category--'
  categories = client.get("projects/#{@config[:project_key]}/categories").body
  categories.each do |category|
    all_issues_count = count_issues(id, categoryId: [category.id])
    closed_issues_count = count_issues(id, categoryId: [category.id], statusId: [4])
    puts "#{category.name}: #{closed_issues_count} / #{all_issues_count}"
  end
end

#status(id) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/bl/project.rb', line 19

def status(id)
  all_issues_count = count_issues(id)
  open_issues_count = count_issues(id, statusId: [1])
  in_progress_issues_count = count_issues(id, statusId: [2])
  resolved_issues_count = count_issues(id, statusId: [3])
  closed_issues_count = count_issues(id, statusId: [4])
  puts "#{closed_issues_count} / #{all_issues_count}"
  puts "open: #{open_issues_count}"
  puts "in progress: #{in_progress_issues_count}"
  puts "resolved: #{resolved_issues_count}"
  puts "closed: #{closed_issues_count}"
end

#users(id) ⇒ Object



55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/bl/project.rb', line 55

def users(id)
  client.get("#{@url}/#{id}/users").body.each do |u|
    puts [
      u.id,
      u.userId,
      u.name,
      u.roleType,
      u.lang,
      u.mailAddress
    ].join("\t")
  end
end