class OctoMerge::InteractivePullRequests

Attributes

query[R]
repo[R]

Public Class Methods

get(options = {}) click to toggle source
# File lib/octo_merge/interactive_pull_requests.rb, line 10
def self.get(options = {})
  new(repo: options[:repo], query: options[:query]).to_s
end
new(repo:, query:) click to toggle source
# File lib/octo_merge/interactive_pull_requests.rb, line 5
def initialize(repo:, query:)
  @repo = repo
  @query = query
end

Public Instance Methods

to_s() click to toggle source
# File lib/octo_merge/interactive_pull_requests.rb, line 14
def to_s
  system("clear")

  idx = Ask.checkbox(
    "Select the pull requests you want to merge",
    formatted_pull_requests
  )

  idx.zip(pull_requests).select { |e| e[0] }.map { |e| e[1].number }.join(",")
end

Private Instance Methods

format_pull_request(pull_request) click to toggle source
# File lib/octo_merge/interactive_pull_requests.rb, line 39
def format_pull_request(pull_request)
  "#{pull_request.number}: \"#{pull_request.title}\" by @#{pull_request.user.login}"
end
formatted_pull_requests() click to toggle source
# File lib/octo_merge/interactive_pull_requests.rb, line 29
def formatted_pull_requests
  pull_requests.map do |pull_request|
    format_pull_request(pull_request)
  end
end
list() click to toggle source
# File lib/octo_merge/interactive_pull_requests.rb, line 43
def list
  @list = OctoMerge::ListPullRequests.new(repo: repo, query: query)
end
pull_requests() click to toggle source
# File lib/octo_merge/interactive_pull_requests.rb, line 35
def pull_requests
  list.all
end