Class: Nanoc::Core::CompilationStages::Preprocess

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

Instance Method Summary collapse

Methods inherited from Nanoc::Core::CompilationStage

#call

Constructor Details

#initialize(action_provider:, site:, dependency_store:, checksum_store:) ⇒ Preprocess

Returns a new instance of Preprocess.



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

def initialize(action_provider:, site:, dependency_store:, checksum_store:)
  @action_provider = action_provider
  @site = site
  @dependency_store = dependency_store
  @checksum_store = checksum_store
end

Instance Method Details

#runObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/nanoc/core/compilation_stages/preprocess.rb', line 14

def run
  return if @site.preprocessed?

  if @action_provider.need_preprocessing?
    @site.data_source = Nanoc::Core::InMemoryDataSource.new(@site.items, @site.layouts, @site.data_source)
    @action_provider.preprocess(@site)

    @dependency_store.items = @site.items
    @dependency_store.layouts = @site.layouts
    @checksum_store.objects = @site.items.to_a + @site.layouts.to_a + @site.code_snippets + [@site.config]
  end

  @site.mark_as_preprocessed
  @site.freeze
end