Class: DocGuard::AssessDocumentationRelevance::Subprocesses::CompareDigests

Inherits:
Object
  • Object
show all
Defined in:
lib/doc_guard/assess_documentation_relevance/subprocesses/compare_digests.rb

Overview

Compares stored and current file digests per documentation file to detect which documentation files may now be outdated.

Class Method Summary collapse

Class Method Details

.run(stored_digests: {}, current_digests: {}) ⇒ Array<String>

Returns a list of documentation files where any tracked source file changed.

Parameters:

  • stored_digests (Hash<String, Hash<String, String>>) (defaults to: {})

    Currently mapping of documentation files to tracked source files and their SHA256 digests.

  • current_digests (Hash<String, Hash<String, String?>>) (defaults to: {})

    New mapping of documentation files to tracked source files and their SHA256 digests (or nil if missing).

Returns:

  • (Array<String>)

    List of file paths with mismatched or missing digests.



16
17
18
19
20
21
22
23
24
25
# File 'lib/doc_guard/assess_documentation_relevance/subprocesses/compare_digests.rb', line 16

def self.run(stored_digests: {}, current_digests: {})
  (stored_digests.keys | current_digests.keys).each_with_object([]) do |documentation_file, mismatches|
    stored = stored_digests[documentation_file] || {}
    current = current_digests[documentation_file] || {}

    (stored.keys | current.keys).each do |source_file|
      stored[source_file] != current[source_file] ? mismatches.push(source_file) : next
    end
  end
end