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