Class: Geet::Github::AbstractIssue
- Inherits:
-
Object
- Object
- Geet::Github::AbstractIssue
- Defined in:
- lib/geet/github/abstract_issue.rb
Overview
For clarity, in this class we keep only the identical logic between the subclasses, but other methods could be moved in here at some complexity cost.
Instance Attribute Summary collapse
-
#link ⇒ Object
readonly
Returns the value of attribute link.
-
#number ⇒ Object
readonly
Returns the value of attribute number.
-
#title ⇒ Object
readonly
Returns the value of attribute title.
Class Method Summary collapse
Instance Method Summary collapse
- #add_labels(labels) ⇒ Object
-
#assign_users(users) ⇒ Object
params: users: String, or Array of strings.
- #edit(milestone:) ⇒ Object
-
#initialize(number, api_interface, title, link) ⇒ AbstractIssue
constructor
A new instance of AbstractIssue.
Constructor Details
#initialize(number, api_interface, title, link) ⇒ AbstractIssue
Returns a new instance of AbstractIssue.
16 17 18 19 20 21 |
# File 'lib/geet/github/abstract_issue.rb', line 16 def initialize(number, api_interface, title, link) @number = number @api_interface = api_interface @title = title @link = link end |
Instance Attribute Details
#link ⇒ Object (readonly)
Returns the value of attribute link.
14 15 16 |
# File 'lib/geet/github/abstract_issue.rb', line 14 def link @link end |
#number ⇒ Object (readonly)
Returns the value of attribute number.
14 15 16 |
# File 'lib/geet/github/abstract_issue.rb', line 14 def number @number end |
#title ⇒ Object (readonly)
Returns the value of attribute title.
14 15 16 |
# File 'lib/geet/github/abstract_issue.rb', line 14 def title @title end |
Class Method Details
.list(api_interface, milestone: nil) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/geet/github/abstract_issue.rb', line 25 def self.list(api_interface, milestone: nil) api_path = 'issues' request_params = { milestone: milestone } if milestone response = api_interface.send_request(api_path, params: request_params, multipage: true) response.map do |issue_data| number = issue_data.fetch('number') title = issue_data.fetch('title') link = issue_data.fetch('html_url') klazz = issue_data.key?('pull_request') ? PR : Issue klazz.new(number, api_interface, title, link) end end |
Instance Method Details
#add_labels(labels) ⇒ Object
52 53 54 55 56 57 |
# File 'lib/geet/github/abstract_issue.rb', line 52 def add_labels(labels) api_path = "issues/#{@number}/labels" request_data = labels @api_interface.send_request(api_path, data: request_data) end |
#assign_users(users) ⇒ Object
params:
users: String, or Array of strings.
45 46 47 48 49 50 |
# File 'lib/geet/github/abstract_issue.rb', line 45 def assign_users(users) api_path = "issues/#{@number}/assignees" request_data = { assignees: Array(users) } @api_interface.send_request(api_path, data: request_data) end |
#edit(milestone:) ⇒ Object
61 62 63 64 65 66 |
# File 'lib/geet/github/abstract_issue.rb', line 61 def edit(milestone:) request_data = { milestone: milestone } api_path = "issues/#{@number}" @api_interface.send_request(api_path, data: request_data, http_method: :patch) end |