Class: Lariat::IssueWriter

Inherits:
Object
  • Object
show all
Defined in:
lib/lariat/issue_writer.rb

Constant Summary collapse

ISSUE_HEADER =
"Category | Opened | Closed | Outstanding \n-------------|------------|------------|-----------------\n"
PR_HEADER =
"New | Closed | Still Open\n-------|-----------|--------------\n"

Class Method Summary collapse

Class Method Details



15
16
17
18
# File 'lib/lariat/issue_writer.rb', line 15

def self.image_link(assignee)
  return "" if assignee.blank?
  "<img src='#{assignee[:avatar_url]}' width='16' title='#{assignee[:login]}'>"
end

.write_build_stats(stream, build_stats) ⇒ Object



20
21
22
23
24
# File 'lib/lariat/issue_writer.rb', line 20

def self.write_build_stats(stream, build_stats)
  stream << "### Sabotage\n"
  stream << "**#{build_stats[:releases_verified]}** Deploys\n"
  stream << "**#{build_stats[:prs_closed]}** PRs closed\n"
end

.write_issue(build_stats, top_issues_results, issue_summary_results, issue_category_results, pr_results) ⇒ Object



6
7
8
9
10
11
12
13
# File 'lib/lariat/issue_writer.rb', line 6

def self.write_issue(build_stats, top_issues_results, issue_summary_results, issue_category_results, pr_results)
   StringIO.open do |stream|
    write_issue_summary(stream, top_issues_results)
    write_build_stats(stream, build_stats)
    write_stats_summary(stream, issue_summary_results, issue_category_results, pr_results)
    stream.string
  end
end

.write_issue_summary(stream, top_issues_results) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/lariat/issue_writer.rb', line 26

def self.write_issue_summary(stream, top_issues_results)
  top_issues_results.each do |results|
    stream << "# #{results[:title]}\n"
    if results[:issues].count == 0
      stream << "**No Priority 1 Issues**\n"
      next
    end
    results[:issues].each do |issue|
      stream << "* [#{issue[:title]}](#{issue[:html_url]}) #{image_link(issue[:assignee])}\n"
    end
    stream << "\n"
  end
end

.write_pr_summary(stream, pr_results) ⇒ Object



58
59
60
61
62
63
64
65
# File 'lib/lariat/issue_writer.rb', line 58

def self.write_pr_summary(stream, pr_results)
  stream << "\n"
  stream << "### Pull Requests\n"
  stream << PR_HEADER
  pr_results.each do |pr|
    stream << "#{pr[:total]} | "
  end
end

.write_stats_summary(stream, issue_summary_results, issue_category_results, pr_results) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/lariat/issue_writer.rb', line 40

def self.write_stats_summary(stream, issue_summary_results, issue_category_results, pr_results)
  stream <<  "## Week in Review\n"
  stream <<  "### Issues\n"

  issue_summary_results.each do |issue|
    stream << "**#{issue[:total]}** #{issue[:title]}\n"
  end

  stream << "#### Issue Breakdown\n"
  stream << ISSUE_HEADER
  issue_category_results.each do |summary|
    values = summary.values.flatten
    stream << "#{summary.keys.first} | #{values[0]} | #{values[1]} | #{values[2]}\n"
  end

  write_pr_summary(stream, pr_results)
end