Class: Manifestly::ManifestDiff

Inherits:
Object
  • Object
show all
Defined in:
lib/manifestly/manifest_diff.rb

Defined Under Namespace

Classes: ItemDiff

Instance Method Summary collapse

Constructor Details

#initialize(from_manifest, to_manifest) ⇒ ManifestDiff

Returns a new instance of ManifestDiff.



69
70
71
72
73
74
75
76
77
78
79
80
# File 'lib/manifestly/manifest_diff.rb', line 69

def initialize(from_manifest, to_manifest)
  @from_manifest = from_manifest
  @to_manifest = to_manifest

  @item_diffs = @to_manifest.items.collect do |to_item|
    from_item = @from_manifest.items.detect do |from_item|
      from_item.repository_name == to_item.repository_name
    end

    ItemDiff.new(from_item, to_item)
  end
end

Instance Method Details

#manifest_source_infoObject



86
87
88
89
90
91
92
93
94
95
96
97
# File 'lib/manifestly/manifest_diff.rb', line 86

def manifest_source_info
  repository = @from_manifest.manifest_repository
  file = @from_manifest.manifest_file
  from_sha = @from_manifest.manifest_sha
  to_sha = @to_manifest.manifest_sha

  if repository && file && from_sha && to_sha
    "Comparing manifest ***#{file}*** on repository ***#{repository.display_name}*** from commit `#{from_sha[0..9]}` to `#{to_sha[0..9]}`."
  else
    "Manifest source info is *unknown*."
  end
end

#to_markdownObject



82
83
84
# File 'lib/manifestly/manifest_diff.rb', line 82

def to_markdown
  "# Manifest Diff\n\n#{manifest_source_info}\n\n#{@item_diffs.collect(&:to_markdown).join("\n")}"
end