class Octaccord::Command::Comments

Public Class Methods

new(client, repos, since, before) click to toggle source
# File lib/octaccord/command/comments.rb, line 5
def initialize(client, repos, since, before)
  begin
    comments = client.issues_comments(repos, :since => since)
    issues = gather_issues(comments, before)

    issues.each do |uri, comments|
      next if comments.empty?
      issue = comments.first.rels[:issue].get.data
      print format_issue(issue)

      comments.each do |comment|
        print format_comment(comment)
      end
    end
    print "\n"
  rescue Octokit::ClientError => e
    STDERR.puts "Error: ##{issue} -- #{e.message.split(' // ').first}"
  end
end

Private Instance Methods

format_comment(comment) click to toggle source
# File lib/octaccord/command/comments.rb, line 38
def format_comment(comment)
  comment = Formatter::Comment.new(comment)
  "  * #{comment.summary} #{comment.link(text: "...")}\n"
end
format_issue(issue) click to toggle source
# File lib/octaccord/command/comments.rb, line 43
def format_issue(issue)
  issue = Formatter::Issue.new(issue)
  return "* #{issue.link} #{issue.status} #{issue.title}\n"
end
gather_issues(comments, before) click to toggle source
# File lib/octaccord/command/comments.rb, line 26
def gather_issues(comments, before)
  issues = {}

  comments.each do |comment|
    next if comment.updated_at > before
    uri = comment.rels[:issue].href
    issues[uri] ||= []
    issues[uri] << comment
  end
  return issues
end