Class: Nanoc::Core::CompilationStages::CalculateChecksums

Inherits:
Nanoc::Core::CompilationStage show all
Defined in:
lib/nanoc/core/compilation_stages/calculate_checksums.rb

Instance Method Summary collapse

Methods inherited from Nanoc::Core::CompilationStage

#call

Constructor Details

#initialize(items:, layouts:, code_snippets:, config:) ⇒ CalculateChecksums

Returns a new instance of CalculateChecksums.



7
8
9
10
11
12
# File 'lib/nanoc/core/compilation_stages/calculate_checksums.rb', line 7

def initialize(items:, layouts:, code_snippets:, config:)
  @items = items
  @layouts = layouts
  @code_snippets = code_snippets
  @config = config
end

Instance Method Details

#runObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/nanoc/core/compilation_stages/calculate_checksums.rb', line 14

def run
  checksums = {}

  [@items, @layouts].each do |documents|
    documents.each do |document|
      checksums[[document.reference, :content]] =
        Nanoc::Core::Checksummer.calc_for_content_of(document)
      checksums[[document.reference, :each_attribute]] =
        Nanoc::Core::Checksummer.calc_for_each_attribute_of(document)
    end
  end

  [@items, @layouts, @code_snippets].each do |objs|
    objs.each do |obj|
      checksums[obj.reference] = Nanoc::Core::Checksummer.calc(obj)
    end
  end

  checksums[@config.reference] =
    Nanoc::Core::Checksummer.calc(@config)
  checksums[[@config.reference, :each_attribute]] =
    Nanoc::Core::Checksummer.calc_for_each_attribute_of(@config)

  Nanoc::Core::ChecksumCollection.new(checksums)
end