class Nanoc::Core::CompilationStages::Preprocess

Public Class Methods

new(action_provider:, site:, dependency_store:, checksum_store:) click to toggle source
# 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

Public Instance Methods

run() click to toggle source
# 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