Class: Lariat::IssueWriter
- Inherits:
-
Object
- Object
- Lariat::IssueWriter
- 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
- .image_link(assignee) ⇒ Object
- .write_build_stats(stream, build_stats) ⇒ Object
- .write_issue(build_stats, top_issues_results, issue_summary_results, issue_category_results, pr_results) ⇒ Object
- .write_issue_summary(stream, top_issues_results) ⇒ Object
- .write_pr_summary(stream, pr_results) ⇒ Object
- .write_stats_summary(stream, issue_summary_results, issue_category_results, pr_results) ⇒ Object
Class Method Details
.image_link(assignee) ⇒ Object
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 |