class HubLink::Batch

Attributes

options[R]

Public Class Methods

new(options = {}) click to toggle source
# File lib/hub_link/batch.rb, line 7
def initialize(options = {})
  @options = options.compact
end

Public Instance Methods

empty?() click to toggle source
# File lib/hub_link/batch.rb, line 11
def empty?
  results.empty?
end
fetch(resource) click to toggle source
# File lib/hub_link/batch.rb, line 15
def fetch(resource)
  public_send(resource)
end
pull_requests() click to toggle source
# File lib/hub_link/batch.rb, line 19
def pull_requests
  log "Fetching pull requests" do
    pull_request_results.find_all(&:pull_request?).map(&:to_h)
  end
end
review_requests() click to toggle source
# File lib/hub_link/batch.rb, line 31
def review_requests
  log "Fetching review requests" do
    pull_request_results.flat_map(&:review_requests).map(&:to_h)
  end
end
reviews() click to toggle source
# File lib/hub_link/batch.rb, line 25
def reviews
  log "Fetching reviews" do
    pull_request_results.flat_map(&:reviews).map(&:to_h)
  end
end

Private Instance Methods

fetch_results() click to toggle source
# File lib/hub_link/batch.rb, line 47
def fetch_results
  log "*Getting issues* #{formatted_options}" do
    Api::PullRequest.list(options)
  end
end
formatted_options() click to toggle source
# File lib/hub_link/batch.rb, line 61
def formatted_options
  options.values.join(", ")
end
log(title, &block) click to toggle source
# File lib/hub_link/batch.rb, line 53
def log(title, &block)
  logger.info(START) { title }

  block.call.tap do |results|
    logger.info(FINISH) { "Found #{results.size}" }
  end
end
logger() click to toggle source
# File lib/hub_link/batch.rb, line 65
def logger
  HubLink.logger
end
pull_request_results() click to toggle source
# File lib/hub_link/batch.rb, line 39
def pull_request_results
  results.find_all(&:pull_request?)
end
results() click to toggle source
# File lib/hub_link/batch.rb, line 43
def results
  @_results ||= fetch_results
end