Class: Worklog::Github::PullRequestEvent
- Inherits:
-
Object
- Object
- Worklog::Github::PullRequestEvent
- Defined in:
- lib/github/pull_request_event.rb
Overview
An event representing a pull request
Instance Attribute Summary collapse
-
#closed_at ⇒ Time?
The time the pull request was closed, or nil if not closed.
-
#created_at ⇒ Time
The creation time of the pull request.
-
#description ⇒ String
The description of the pull request.
-
#merged_at ⇒ Time?
The time the pull request was merged, or nil if not merged.
-
#number ⇒ Integer
The pull request number.
-
#repository ⇒ String
The repository name.
-
#title ⇒ String
The title of the pull request.
-
#url ⇒ String
The URL of the pull request.
Instance Method Summary collapse
-
#closed? ⇒ Boolean
Returns true if the pull request was closed.
-
#initialize(params = {}) ⇒ PullRequestEvent
constructor
A new instance of PullRequestEvent.
-
#merged? ⇒ Boolean
Returns true if the pull request was merged.
-
#to_log_entry ⇒ LogEntry
Convert the PullRequestEvent to a LogEntry.
-
#to_s ⇒ String
String representation of the PullRequestEvent.
Constructor Details
#initialize(params = {}) ⇒ PullRequestEvent
Returns a new instance of PullRequestEvent.
29 30 31 32 33 |
# File 'lib/github/pull_request_event.rb', line 29 def initialize(params = {}) params.each do |key, value| send("#{key}=", value) if respond_to?("#{key}=") end end |
Instance Attribute Details
#closed_at ⇒ Time?
Returns the time the pull request was closed, or nil if not closed.
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/github/pull_request_event.rb', line 26 class PullRequestEvent attr_accessor :repository, :number, :url, :title, :description, :created_at, :merged_at, :closed_at def initialize(params = {}) params.each do |key, value| send("#{key}=", value) if respond_to?("#{key}=") end end # Returns true if the pull request was merged. # Usually, a merged pull request is also closed. # @return [Boolean] true if merged, false otherwise def merged? !merged_at.nil? end # Returns true if the pull request was closed. # A closed pull request may or may not be merged. # @return [Boolean] true if closed, false otherwise # @see #merged? def closed? # Treat merged pull requests as closed !closed_at.nil? || (merged? && closed_at.nil?) end # Convert the PullRequestEvent to a LogEntry # @return [LogEntry] def to_log_entry(*) = if merged? 'Merged PR ' elsif closed? 'Closed PR ' else 'Created PR ' end += title # If merged, use merged_at time; if closed, use closed_at time; otherwise, use created_at time time = if merged? merged_at elsif closed? closed_at else created_at end key = Hasher.sha256("#{repository}#{number}#{merged?}#{closed?}") LogEntry.new( key:, source: 'github', time:, message:, url: url, epic: false, ticket: nil ) end # String representation of the PullRequestEvent # @return [String] def to_s short_url = url.length > 10 ? "...#{url[-10..]}" : url unless description.nil? short_description = description.gsub(/\n+/, ' ') short_description = "#{short_description[0..16]}..." if short_description.length > 20 end "#<PullRequestEvent repository=#{repository} number=#{number} url=#{short_url} title=#{title} " \ "description=#{short_description} " \ "created_at=#{created_at} merged_at=#{merged_at} closed_at=#{closed_at}>" end end |
#created_at ⇒ Time
Returns the creation time of the pull request.
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/github/pull_request_event.rb', line 26 class PullRequestEvent attr_accessor :repository, :number, :url, :title, :description, :created_at, :merged_at, :closed_at def initialize(params = {}) params.each do |key, value| send("#{key}=", value) if respond_to?("#{key}=") end end # Returns true if the pull request was merged. # Usually, a merged pull request is also closed. # @return [Boolean] true if merged, false otherwise def merged? !merged_at.nil? end # Returns true if the pull request was closed. # A closed pull request may or may not be merged. # @return [Boolean] true if closed, false otherwise # @see #merged? def closed? # Treat merged pull requests as closed !closed_at.nil? || (merged? && closed_at.nil?) end # Convert the PullRequestEvent to a LogEntry # @return [LogEntry] def to_log_entry(*) = if merged? 'Merged PR ' elsif closed? 'Closed PR ' else 'Created PR ' end += title # If merged, use merged_at time; if closed, use closed_at time; otherwise, use created_at time time = if merged? merged_at elsif closed? closed_at else created_at end key = Hasher.sha256("#{repository}#{number}#{merged?}#{closed?}") LogEntry.new( key:, source: 'github', time:, message:, url: url, epic: false, ticket: nil ) end # String representation of the PullRequestEvent # @return [String] def to_s short_url = url.length > 10 ? "...#{url[-10..]}" : url unless description.nil? short_description = description.gsub(/\n+/, ' ') short_description = "#{short_description[0..16]}..." if short_description.length > 20 end "#<PullRequestEvent repository=#{repository} number=#{number} url=#{short_url} title=#{title} " \ "description=#{short_description} " \ "created_at=#{created_at} merged_at=#{merged_at} closed_at=#{closed_at}>" end end |
#description ⇒ String
Returns the description of the pull request.
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/github/pull_request_event.rb', line 26 class PullRequestEvent attr_accessor :repository, :number, :url, :title, :description, :created_at, :merged_at, :closed_at def initialize(params = {}) params.each do |key, value| send("#{key}=", value) if respond_to?("#{key}=") end end # Returns true if the pull request was merged. # Usually, a merged pull request is also closed. # @return [Boolean] true if merged, false otherwise def merged? !merged_at.nil? end # Returns true if the pull request was closed. # A closed pull request may or may not be merged. # @return [Boolean] true if closed, false otherwise # @see #merged? def closed? # Treat merged pull requests as closed !closed_at.nil? || (merged? && closed_at.nil?) end # Convert the PullRequestEvent to a LogEntry # @return [LogEntry] def to_log_entry(*) = if merged? 'Merged PR ' elsif closed? 'Closed PR ' else 'Created PR ' end += title # If merged, use merged_at time; if closed, use closed_at time; otherwise, use created_at time time = if merged? merged_at elsif closed? closed_at else created_at end key = Hasher.sha256("#{repository}#{number}#{merged?}#{closed?}") LogEntry.new( key:, source: 'github', time:, message:, url: url, epic: false, ticket: nil ) end # String representation of the PullRequestEvent # @return [String] def to_s short_url = url.length > 10 ? "...#{url[-10..]}" : url unless description.nil? short_description = description.gsub(/\n+/, ' ') short_description = "#{short_description[0..16]}..." if short_description.length > 20 end "#<PullRequestEvent repository=#{repository} number=#{number} url=#{short_url} title=#{title} " \ "description=#{short_description} " \ "created_at=#{created_at} merged_at=#{merged_at} closed_at=#{closed_at}>" end end |
#merged_at ⇒ Time?
Returns the time the pull request was merged, or nil if not merged.
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/github/pull_request_event.rb', line 26 class PullRequestEvent attr_accessor :repository, :number, :url, :title, :description, :created_at, :merged_at, :closed_at def initialize(params = {}) params.each do |key, value| send("#{key}=", value) if respond_to?("#{key}=") end end # Returns true if the pull request was merged. # Usually, a merged pull request is also closed. # @return [Boolean] true if merged, false otherwise def merged? !merged_at.nil? end # Returns true if the pull request was closed. # A closed pull request may or may not be merged. # @return [Boolean] true if closed, false otherwise # @see #merged? def closed? # Treat merged pull requests as closed !closed_at.nil? || (merged? && closed_at.nil?) end # Convert the PullRequestEvent to a LogEntry # @return [LogEntry] def to_log_entry(*) = if merged? 'Merged PR ' elsif closed? 'Closed PR ' else 'Created PR ' end += title # If merged, use merged_at time; if closed, use closed_at time; otherwise, use created_at time time = if merged? merged_at elsif closed? closed_at else created_at end key = Hasher.sha256("#{repository}#{number}#{merged?}#{closed?}") LogEntry.new( key:, source: 'github', time:, message:, url: url, epic: false, ticket: nil ) end # String representation of the PullRequestEvent # @return [String] def to_s short_url = url.length > 10 ? "...#{url[-10..]}" : url unless description.nil? short_description = description.gsub(/\n+/, ' ') short_description = "#{short_description[0..16]}..." if short_description.length > 20 end "#<PullRequestEvent repository=#{repository} number=#{number} url=#{short_url} title=#{title} " \ "description=#{short_description} " \ "created_at=#{created_at} merged_at=#{merged_at} closed_at=#{closed_at}>" end end |
#number ⇒ Integer
Returns the pull request number.
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/github/pull_request_event.rb', line 26 class PullRequestEvent attr_accessor :repository, :number, :url, :title, :description, :created_at, :merged_at, :closed_at def initialize(params = {}) params.each do |key, value| send("#{key}=", value) if respond_to?("#{key}=") end end # Returns true if the pull request was merged. # Usually, a merged pull request is also closed. # @return [Boolean] true if merged, false otherwise def merged? !merged_at.nil? end # Returns true if the pull request was closed. # A closed pull request may or may not be merged. # @return [Boolean] true if closed, false otherwise # @see #merged? def closed? # Treat merged pull requests as closed !closed_at.nil? || (merged? && closed_at.nil?) end # Convert the PullRequestEvent to a LogEntry # @return [LogEntry] def to_log_entry(*) = if merged? 'Merged PR ' elsif closed? 'Closed PR ' else 'Created PR ' end += title # If merged, use merged_at time; if closed, use closed_at time; otherwise, use created_at time time = if merged? merged_at elsif closed? closed_at else created_at end key = Hasher.sha256("#{repository}#{number}#{merged?}#{closed?}") LogEntry.new( key:, source: 'github', time:, message:, url: url, epic: false, ticket: nil ) end # String representation of the PullRequestEvent # @return [String] def to_s short_url = url.length > 10 ? "...#{url[-10..]}" : url unless description.nil? short_description = description.gsub(/\n+/, ' ') short_description = "#{short_description[0..16]}..." if short_description.length > 20 end "#<PullRequestEvent repository=#{repository} number=#{number} url=#{short_url} title=#{title} " \ "description=#{short_description} " \ "created_at=#{created_at} merged_at=#{merged_at} closed_at=#{closed_at}>" end end |
#repository ⇒ String
Returns the repository name.
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/github/pull_request_event.rb', line 26 class PullRequestEvent attr_accessor :repository, :number, :url, :title, :description, :created_at, :merged_at, :closed_at def initialize(params = {}) params.each do |key, value| send("#{key}=", value) if respond_to?("#{key}=") end end # Returns true if the pull request was merged. # Usually, a merged pull request is also closed. # @return [Boolean] true if merged, false otherwise def merged? !merged_at.nil? end # Returns true if the pull request was closed. # A closed pull request may or may not be merged. # @return [Boolean] true if closed, false otherwise # @see #merged? def closed? # Treat merged pull requests as closed !closed_at.nil? || (merged? && closed_at.nil?) end # Convert the PullRequestEvent to a LogEntry # @return [LogEntry] def to_log_entry(*) = if merged? 'Merged PR ' elsif closed? 'Closed PR ' else 'Created PR ' end += title # If merged, use merged_at time; if closed, use closed_at time; otherwise, use created_at time time = if merged? merged_at elsif closed? closed_at else created_at end key = Hasher.sha256("#{repository}#{number}#{merged?}#{closed?}") LogEntry.new( key:, source: 'github', time:, message:, url: url, epic: false, ticket: nil ) end # String representation of the PullRequestEvent # @return [String] def to_s short_url = url.length > 10 ? "...#{url[-10..]}" : url unless description.nil? short_description = description.gsub(/\n+/, ' ') short_description = "#{short_description[0..16]}..." if short_description.length > 20 end "#<PullRequestEvent repository=#{repository} number=#{number} url=#{short_url} title=#{title} " \ "description=#{short_description} " \ "created_at=#{created_at} merged_at=#{merged_at} closed_at=#{closed_at}>" end end |
#title ⇒ String
Returns the title of the pull request.
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/github/pull_request_event.rb', line 26 class PullRequestEvent attr_accessor :repository, :number, :url, :title, :description, :created_at, :merged_at, :closed_at def initialize(params = {}) params.each do |key, value| send("#{key}=", value) if respond_to?("#{key}=") end end # Returns true if the pull request was merged. # Usually, a merged pull request is also closed. # @return [Boolean] true if merged, false otherwise def merged? !merged_at.nil? end # Returns true if the pull request was closed. # A closed pull request may or may not be merged. # @return [Boolean] true if closed, false otherwise # @see #merged? def closed? # Treat merged pull requests as closed !closed_at.nil? || (merged? && closed_at.nil?) end # Convert the PullRequestEvent to a LogEntry # @return [LogEntry] def to_log_entry(*) = if merged? 'Merged PR ' elsif closed? 'Closed PR ' else 'Created PR ' end += title # If merged, use merged_at time; if closed, use closed_at time; otherwise, use created_at time time = if merged? merged_at elsif closed? closed_at else created_at end key = Hasher.sha256("#{repository}#{number}#{merged?}#{closed?}") LogEntry.new( key:, source: 'github', time:, message:, url: url, epic: false, ticket: nil ) end # String representation of the PullRequestEvent # @return [String] def to_s short_url = url.length > 10 ? "...#{url[-10..]}" : url unless description.nil? short_description = description.gsub(/\n+/, ' ') short_description = "#{short_description[0..16]}..." if short_description.length > 20 end "#<PullRequestEvent repository=#{repository} number=#{number} url=#{short_url} title=#{title} " \ "description=#{short_description} " \ "created_at=#{created_at} merged_at=#{merged_at} closed_at=#{closed_at}>" end end |
#url ⇒ String
Returns the URL of the pull request.
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/github/pull_request_event.rb', line 26 class PullRequestEvent attr_accessor :repository, :number, :url, :title, :description, :created_at, :merged_at, :closed_at def initialize(params = {}) params.each do |key, value| send("#{key}=", value) if respond_to?("#{key}=") end end # Returns true if the pull request was merged. # Usually, a merged pull request is also closed. # @return [Boolean] true if merged, false otherwise def merged? !merged_at.nil? end # Returns true if the pull request was closed. # A closed pull request may or may not be merged. # @return [Boolean] true if closed, false otherwise # @see #merged? def closed? # Treat merged pull requests as closed !closed_at.nil? || (merged? && closed_at.nil?) end # Convert the PullRequestEvent to a LogEntry # @return [LogEntry] def to_log_entry(*) = if merged? 'Merged PR ' elsif closed? 'Closed PR ' else 'Created PR ' end += title # If merged, use merged_at time; if closed, use closed_at time; otherwise, use created_at time time = if merged? merged_at elsif closed? closed_at else created_at end key = Hasher.sha256("#{repository}#{number}#{merged?}#{closed?}") LogEntry.new( key:, source: 'github', time:, message:, url: url, epic: false, ticket: nil ) end # String representation of the PullRequestEvent # @return [String] def to_s short_url = url.length > 10 ? "...#{url[-10..]}" : url unless description.nil? short_description = description.gsub(/\n+/, ' ') short_description = "#{short_description[0..16]}..." if short_description.length > 20 end "#<PullRequestEvent repository=#{repository} number=#{number} url=#{short_url} title=#{title} " \ "description=#{short_description} " \ "created_at=#{created_at} merged_at=#{merged_at} closed_at=#{closed_at}>" end end |
Instance Method Details
#closed? ⇒ Boolean
Returns true if the pull request was closed. A closed pull request may or may not be merged.
46 47 48 49 |
# File 'lib/github/pull_request_event.rb', line 46 def closed? # Treat merged pull requests as closed !closed_at.nil? || (merged? && closed_at.nil?) end |
#merged? ⇒ Boolean
Returns true if the pull request was merged. Usually, a merged pull request is also closed.
38 39 40 |
# File 'lib/github/pull_request_event.rb', line 38 def merged? !merged_at.nil? end |
#to_log_entry ⇒ LogEntry
Convert the PullRequestEvent to a LogEntry
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/github/pull_request_event.rb', line 53 def to_log_entry(*) = if merged? 'Merged PR ' elsif closed? 'Closed PR ' else 'Created PR ' end += title # If merged, use merged_at time; if closed, use closed_at time; otherwise, use created_at time time = if merged? merged_at elsif closed? closed_at else created_at end key = Hasher.sha256("#{repository}#{number}#{merged?}#{closed?}") LogEntry.new( key:, source: 'github', time:, message:, url: url, epic: false, ticket: nil ) end |
#to_s ⇒ String
String representation of the PullRequestEvent
85 86 87 88 89 90 91 92 93 94 |
# File 'lib/github/pull_request_event.rb', line 85 def to_s short_url = url.length > 10 ? "...#{url[-10..]}" : url unless description.nil? short_description = description.gsub(/\n+/, ' ') short_description = "#{short_description[0..16]}..." if short_description.length > 20 end "#<PullRequestEvent repository=#{repository} number=#{number} url=#{short_url} title=#{title} " \ "description=#{short_description} " \ "created_at=#{created_at} merged_at=#{merged_at} closed_at=#{closed_at}>" end |