class Github::Nippou::UserEvents
Public Class Methods
new(client, user, since_date, until_date)
click to toggle source
# File lib/github/nippou/user_events.rb, line 9 def initialize(client, user, since_date, until_date) @client = client @user = user @since_time = Time.parse(since_date).beginning_of_day until_time = Time.parse(until_date).end_of_day @range = @since_time..until_time end
Public Instance Methods
collect()
click to toggle source
# File lib/github/nippou/user_events.rb, line 17 def collect uniq(filter(retrieve)) end
Private Instance Methods
continue?(last_response, user_events)
click to toggle source
# File lib/github/nippou/user_events.rb, line 35 def continue?(last_response, user_events) last_response.rels[:next] && user_events.last.created_at.getlocal >= @since_time end
filter(user_events)
click to toggle source
# File lib/github/nippou/user_events.rb, line 44 def filter(user_events) elements = %w(IssuesEvent IssueCommentEvent PullRequestEvent PullRequestReviewCommentEvent) user_events.select do |user_event| elements.include?(user_event.type) end end
in_range?(user_event)
click to toggle source
# File lib/github/nippou/user_events.rb, line 40 def in_range?(user_event) @range.include?(user_event.created_at.getlocal) end
retrieve()
click to toggle source
# File lib/github/nippou/user_events.rb, line 23 def retrieve user_events = @client.user_events(@user, per_page: 100) last_response = @client.last_response while continue?(last_response, user_events) last_response = last_response.rels[:next].get user_events.concat(last_response.data) end user_events.select { |user_event| in_range?(user_event) } end
uniq(user_events)
click to toggle source
# File lib/github/nippou/user_events.rb, line 53 def uniq(user_events) user_events.uniq do |user_event| user_event.html_url end end