class Ruboty::PR::Actions::SearchPullRequests

Public Instance Methods

call() click to toggle source
# File lib/ruboty/pr/actions/search_pull_requests.rb, line 5
def call
  if has_access_token?
    list
  else
    require_access_token
  end
end

Private Instance Methods

empty_summary() click to toggle source
# File lib/ruboty/pr/actions/search_pull_requests.rb, line 31
def empty_summary
  "Issue not found"
end
issues() click to toggle source
# File lib/ruboty/pr/actions/search_pull_requests.rb, line 45
def issues
  @issues ||= search_result
end
list() click to toggle source
# File lib/ruboty/pr/actions/search_pull_requests.rb, line 15
def list
  message.reply(search_summary, code: true)
end
repositories() click to toggle source
# File lib/ruboty/pr/actions/search_pull_requests.rb, line 35
def repositories
  repos = Hash.new { |hash, key| hash[key] = [] }
  issues.each do |issue|
    next unless issue.pull_request
    repo_name = issue.repository.name
    repos[repo_name] << issue
  end
  repos
end
search_result() click to toggle source
# File lib/ruboty/pr/actions/search_pull_requests.rb, line 49
def search_result
  client.issues(nil, state: "all", since: since)
end
search_summary() click to toggle source
# File lib/ruboty/pr/actions/search_pull_requests.rb, line 19
def search_summary
  if issues.empty?
    empty_summary
  else
    repositories.sort.map do |repo_name, repo_issues|
      repo_issues.map do |issue|
        "* [#{(issue.state == "closed") ? "x" : " "}] [#{repo_name}##{issue.number}: #{issue.title}](#{issue.html_url})"
      end.join("\n")
    end.join("\n")
  end
end
since() click to toggle source
# File lib/ruboty/pr/actions/search_pull_requests.rb, line 53
def since
  case message[:since]
    when "today" then
      Date.today.midnight.iso8601
    when "yesterday" then
      Date.yesterday.midnight.iso8601
  end
end