class CC::Service::PullRequestsPresenter

Public Class Methods

new(payload) click to toggle source
# File lib/cc/presenters/pull_requests_presenter.rb, line 6
def initialize(payload)
  issue_comparison_counts = payload["issue_comparison_counts"]

  if issue_comparison_counts
    @fixed_count = issue_comparison_counts["fixed"]
    @new_count = issue_comparison_counts["new"]
  end

  @covered_percent = payload["covered_percent"]
  @covered_percent_delta = payload["covered_percent_delta"]

  @approved_by = payload["approved_by"].presence
end

Public Instance Methods

approved_message() click to toggle source
# File lib/cc/presenters/pull_requests_presenter.rb, line 20
def approved_message
  "Approved by #{@approved_by}."
end
coverage_message() click to toggle source
# File lib/cc/presenters/pull_requests_presenter.rb, line 36
def coverage_message
  message = "#{formatted_percent(@covered_percent)}%"

  return message if @covered_percent_delta.nil?

  if @covered_percent_delta.round(2) > 0
    message += " (+#{formatted_percent(@covered_percent_delta)}%)"
  elsif @covered_percent_delta.round(2) < 0
    message += " (#{formatted_percent(@covered_percent_delta)}%)"
  end

  message
end
error_message() click to toggle source
# File lib/cc/presenters/pull_requests_presenter.rb, line 24
def error_message
  "Code Climate encountered an error attempting to analyze this pull request."
end
pending_message() click to toggle source
# File lib/cc/presenters/pull_requests_presenter.rb, line 28
def pending_message
  "Code Climate is analyzing this code."
end
skipped_message() click to toggle source
# File lib/cc/presenters/pull_requests_presenter.rb, line 32
def skipped_message
  "Code Climate has skipped analysis of this commit."
end
success_message() click to toggle source
# File lib/cc/presenters/pull_requests_presenter.rb, line 50
def success_message
  if @approved_by
    approved_message
  elsif @new_count > 0
    "#{@new_count} #{"issue".pluralize(@new_count)} to fix"
  elsif @fixed_count > 0
    "#{@fixed_count} fixed #{"issue".pluralize(@fixed_count)}"
  else
    "All good!"
  end
end

Private Instance Methods

formatted_percent(value) click to toggle source
# File lib/cc/presenters/pull_requests_presenter.rb, line 64
def formatted_percent(value)
  "%g" % ("%.2f" % value)
end