Class: ListPullRequests::CLI
- Inherits:
-
Object
- Object
- ListPullRequests::CLI
- Defined in:
- lib/list_pull_requests/cli.rb
Instance Method Summary collapse
Instance Method Details
#call ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/list_pull_requests/cli.rb', line 3 def call puts "I list a GitHub user's pull requests!" puts "Please type the user name:" @username = gets.strip puts "What kind of pull requests would you like? (all/merged/unmerged):" @request_type = gets.strip case @request_type when "all" list_prs(pulls = ListPullRequests::User.new(@username).get_all) pr_details(pulls) when "merged" list_prs(pulls = ListPullRequests::User.new(@username).get_merged) pr_details(pulls) when "unmerged" list_prs(pulls = ListPullRequests::User.new(@username).get_unmerged) pr_details(pulls) end end |
#list_prs(prs) ⇒ Object
22 23 24 25 26 27 |
# File 'lib/list_pull_requests/cli.rb', line 22 def list_prs(prs) puts "#{@username} has #{prs.count} #{@request_type + " " unless @request_type == "all"}pull requests:" prs.each.with_index(1) do |pull, i| puts "#{i}." + "#{pull.repo} ##{pull.number}".cyan + " | " + "#{pull.name}".green + " | " + "#{pull.created}".yellow end end |
#pr_details(prs) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/list_pull_requests/cli.rb', line 29 def pr_details(prs) puts "Enter a pull request number to see more details. Otherwise type exit:" input = gets.strip until input == "exit" if input == "list" list_prs(prs) elsif input.to_i < 1 || input.to_i > prs.count print "Invalid input. " else detail_pr = input.to_i-1 prs[detail_pr].lookup puts "---" puts "#{prs[detail_pr].repo} ##{prs[detail_pr].number}".cyan puts "Title: " + "#{prs[detail_pr].name}".green puts "Created: " + "#{prs[detail_pr].created}".yellow puts "URL: " + "#{prs[detail_pr].url}".blue print "Merged: "; puts prs[detail_pr].merged ? "#{prs[detail_pr].merged} by #{prs[detail_pr].merged_by}".magenta : "false".magenta puts "Mergeable: " + "#{prs[detail_pr].mergeable}".magenta unless prs[detail_pr].merged_by puts "---" puts "" end puts "Enter a pull request number to see more details. Otherwise type list or exit:" input = gets.strip end end |