class Michael::Commands::Repos::PullRequests
Attributes
config[R]
options[R]
repos[R]
users[R]
Public Class Methods
new(config, users, repos, options)
click to toggle source
# File lib/michael/commands/repos/pull_requests.rb, line 11 def initialize(config, users, repos, options) @config = config @users = users @repos = repos @options = options end
Public Instance Methods
execute()
click to toggle source
# File lib/michael/commands/repos/pull_requests.rb, line 18 def execute q = Queue.new waiting = print_waiting(q) list = config.fetch(:repos) list = repos.pull_requests(list, q) waiting.join puts [filter_repos_w_prs(list), get_empty(list), get_broken(list)] .reject(&:nil?).join("\n\n") end
Private Instance Methods
filter_repos_w_prs(list)
click to toggle source
# File lib/michael/commands/repos/pull_requests.rb, line 32 def filter_repos_w_prs(list) list.each do |r| r.prs.reject! { |pr| pr.author?(users.user.username) } if options[:skip_self] r.prs.reject!(&:approved?) if options[:hide_approved] r.prs.select!(&:needs_review?) if options[:needs_review] r.prs.select! { |pr| pr.actionable?(users.user.username) } if options[:actionable] end list.select(&:has_prs?).map!(&:pretty_print).join("\n\n") end
get_broken(list)
click to toggle source
# File lib/michael/commands/repos/pull_requests.rb, line 43 def get_broken(list) broken = list.select(&:broken?) return nil if broken.none? 'Broken repos: ' + broken.map(&:pretty_print).join(', ') end
get_empty(list)
click to toggle source
# File lib/michael/commands/repos/pull_requests.rb, line 50 def get_empty(list) return nil unless options[:show_empty] empty = list.reject(&:has_prs?) return nil if empty.none? 'No PRs: ' + empty.map(&:pretty_print).join(', ') end
print_waiting(queue)
click to toggle source
# File lib/michael/commands/repos/pull_requests.rb, line 59 def print_waiting(queue) Thread.new do until queue.closed? queue.pop print '.' $stdout.flush end puts end end