class PrStatus::Client

Client class for Octokit

Holds an internal reference to Octokit::Client
and other related methods for interacting with octokit's api wrapper

Attributes

user[RW]

Public Class Methods

new(credentials) click to toggle source
# File lib/pr_status/client.rb, line 8
def initialize(credentials)
  @octokit = Octokit::Client.new(credentials)
  # Cache the user info so we don't have to make another request
  @user = @octokit.user
end

Public Instance Methods

pull_requests(filters = {}) click to toggle source
# File lib/pr_status/client.rb, line 14
def pull_requests(filters = {})
  filters = default_filters.merge(filters)
  @octokit.search_issues(build_query(filters))[:total_count]
end
repos() click to toggle source
# File lib/pr_status/client.rb, line 19
def repos
  @repos ||= @octokit.repos
end

Private Instance Methods

build_query(filters) click to toggle source
# File lib/pr_status/client.rb, line 25
def build_query(filters)
  ["author:#{@user[:login]}",
   'type:pr',
   "created:>=#{filter_date(filters)}"].join(' ')
end
default_filters() click to toggle source
# File lib/pr_status/client.rb, line 43
def default_filters
  { range: 'monthly' }
end
filter_date(filters) click to toggle source
# File lib/pr_status/client.rb, line 31
def filter_date(filters)
  time = Time.now
  case filters[:range]
  when 'monthly'
    if time.month < 10
      "#{time.year}-0#{time.month}-01"
    else
      "#{time.year}-#{time.month}-01"
    end
  end
end