diff --git a/lib/github/nippou/commands.rb b/lib/github/nippou/commands.rb index 61a19f5..55ff72b 100644 --- a/lib/github/nippou/commands.rb +++ b/lib/github/nippou/commands.rb @@ -63,10 +63,14 @@ def format_line(user_event, i) end def issue(user_event) - if user_event.issue? - client.issue(user_event.repo.name, user_event.payload.issue.number) - else + case + when user_event.payload.pull_request client.pull_request(user_event.repo.name, user_event.payload.pull_request.number) + when user_event.payload.issue.pull_request + # a pull_request like an issue + client.pull_request(user_event.repo.name, user_event.payload.issue.number) + else + client.issue(user_event.repo.name, user_event.payload.issue.number) end end diff --git a/lib/github/nippou/concerns/sawyer_resource_github.rb b/lib/github/nippou/concerns/sawyer_resource_github.rb index 2d39355..0653aec 100644 --- a/lib/github/nippou/concerns/sawyer_resource_github.rb +++ b/lib/github/nippou/concerns/sawyer_resource_github.rb @@ -3,22 +3,11 @@ module SawyerResourceGithub refine Sawyer::Resource do def html_url - case - when self.issue? - self.payload.issue.html_url - when self.pull_request? + if self.payload.pull_request self.payload.pull_request.html_url + else + self.payload.issue.html_url end end - - def issue? - self.type == 'IssuesEvent' || - self.type == 'IssueCommentEvent' - end - - def pull_request? - self.type == 'PullRequestEvent' || - self.type == 'PullRequestReviewCommentEvent' - end end end diff --git a/lib/github/nippou/user_events.rb b/lib/github/nippou/user_events.rb index 7c763f3..4b9d51f 100644 --- a/lib/github/nippou/user_events.rb +++ b/lib/github/nippou/user_events.rb @@ -42,8 +42,11 @@ def in_range?(user_event) end def filter(user_events) + elements = %w(IssuesEvent IssueCommentEvent + PullRequestEvent PullRequestReviewCommentEvent) + user_events.select do |user_event| - user_event.issue? || user_event.pull_request? + elements.include?(user_event.type) end end