class Manifestly::ManifestDiff::ItemDiff
Public Class Methods
new(from_item, to_item)
click to toggle source
# File lib/manifestly/manifest_diff.rb, line 5 def initialize(from_item, to_item) @from_item = from_item @to_item = to_item @markdown = "## #{to_item.repository_name}#{item_source_info}\n\n#{commits_markdown}\n" end
Public Instance Methods
commits_markdown()
click to toggle source
# File lib/manifestly/manifest_diff.rb, line 34 def commits_markdown if new_item? "* This manifest item was not in the prior manifest, so all of its commits are new." else repository = @from_item.repository repository.toggle_prs_only is_rollback = false commits = repository.commits(between: [from_sha, to_sha]) if commits.size == 0 # This might be a rollback, so try them backwards commits = repository.commits(between: [to_sha, from_sha]) is_rollback = commits.size != 0 end if commits.size == 0 "* There were no pull requests merged in this range of commits." else entries = commits.collect do |commit| wrapper = Commit.new(commit) entry = wrapper.summarized_message entry = "[#{entry}](https://github.com/#{repository.display_name}/pull/#{wrapper.pr_number})" if wrapper.is_pr? "1. #{entry}" end.join("\n") is_rollback ? "These commits were ***rolled back***:\n\n#{entries}" : entries end end end
from_sha()
click to toggle source
# File lib/manifestly/manifest_diff.rb, line 16 def from_sha @from_item.commit.sha end
item_source_info()
click to toggle source
# File lib/manifestly/manifest_diff.rb, line 24 def item_source_info new_item? ? " (new manifest entry)" : " (`#{from_sha[0..9]}` to `#{to_sha[0..9]}`)" end
new_item?()
click to toggle source
# File lib/manifestly/manifest_diff.rb, line 30 def new_item? @from_item.nil? end
to_markdown()
click to toggle source
# File lib/manifestly/manifest_diff.rb, line 12 def to_markdown @markdown end
to_sha()
click to toggle source
# File lib/manifestly/manifest_diff.rb, line 20 def to_sha @to_item.commit.sha end