Class: CodeclimateDiff::ResultPrinter
- Inherits:
-
Object
- Object
- CodeclimateDiff::ResultPrinter
- Defined in:
- lib/codeclimate_diff/result_printer.rb
Class Method Summary collapse
- .print_call_to_action(sorted_issues) ⇒ Object
- .print_category(bullet_emoji, severity, engine_name, check_name, color) ⇒ Object
- .print_issues(issues_list, color, bullet_emoji) ⇒ Object
- .print_issues_in_category(issues_list) ⇒ Object
- .print_result(sorted_issues, show_preexisting) ⇒ Object
Class Method Details
.print_call_to_action(sorted_issues) ⇒ Object
79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/codeclimate_diff/result_printer.rb', line 79 def self.print_call_to_action(sorted_issues) fixed_count = sorted_issues[:fixed].count new_count = sorted_issues[:new].count outstanding_count = sorted_issues[:preexisting].count + new_count if fixed_count > new_count puts "\n\u{1F389}\u{1F389} Well done! You made the code even better!! \u{1F389}\u{1F389} \n".bold.green.encode("utf-8") elsif new_count > fixed_count puts "\n\ Uh oh, you've introduced more issues than you've fixed. Better fix that! \n".bold.red.encode("utf-8") elsif outstanding_count.positive? puts "\n\ Why don't you see if you can fix some of those outstanding issues while you're here? \n".bold.encode("utf-8") else puts "\n\u{1F389}\u{1F389} Nothing to do here, the code is immaculate!! \u{1F389}\u{1F389} \n".bold.green.encode("utf-8") end end |
.print_category(bullet_emoji, severity, engine_name, check_name, color) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/codeclimate_diff/result_printer.rb', line 20 def self.print_category(bullet_emoji, severity, engine_name, check_name, color) = "#{bullet_emoji} [#{severity}] #{engine_name} #{check_name}:".encode("utf-8") case color when "red" puts .red when "yellow" puts .yellow when "green" puts .green else puts end end |
.print_issues(issues_list, color, bullet_emoji) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/codeclimate_diff/result_printer.rb', line 35 def self.print_issues(issues_list, color, bullet_emoji) issue_categories = issues_list.map { |issue| [issue["engine_name"], issue["check_name"], issue["severity"]] }.uniq issue_categories.each do |issue_category| engine_name = issue_category[0] check_name = issue_category[1] severity = issue_category[2] issues = issues_list.filter do |issue| issue["engine_name"] == engine_name && issue["check_name"] == check_name && issue["severity"] == severity end print_category(bullet_emoji, severity, engine_name, check_name, color) print_issues_in_category(issues) end end |
.print_issues_in_category(issues_list) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/codeclimate_diff/result_printer.rb', line 8 def self.print_issues_in_category(issues_list) issues_list.each do |issue| filename = issue["location"]["path"] line_number = issue["location"]["lines"]["begin"] description = issue["description"] print "\u2022 #{filename}:#{line_number}".encode("utf-8").bold puts " #{description}" end puts "\n" end |
.print_result(sorted_issues, show_preexisting) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/codeclimate_diff/result_printer.rb', line 51 def self.print_result(sorted_issues, show_preexisting) if show_preexisting preexisting_issues = sorted_issues[:preexisting] if preexisting_issues.count.positive? puts "\n#{preexisting_issues.count} preexisting issues in changed files:\n".bold.yellow print_issues(preexisting_issues, "yellow", "\u2718") else puts "\n0 issues in changed files!".encode("utf-8").bold.green end end new_issues = sorted_issues[:new] if new_issues.count.positive? puts "\n#{new_issues.count} new issues:\n".bold.red print_issues(new_issues, "red", "\u2718") else puts "\n0 new issues :)\n".encode("utf-8").bold end fixed_issues = sorted_issues[:fixed] if fixed_issues.count.positive? puts "\n#{fixed_issues.count} fixed issues: \n".encode("utf-8").bold.green print_issues(fixed_issues, "green", "\u2714") else puts "\n0 fixed issues\n".bold end end |