lib/nanoc/base/entities/site.rb in nanoc-4.8.9 vs lib/nanoc/base/entities/site.rb in nanoc-4.8.10

- old
+ new

@@ -6,30 +6,34 @@ include Nanoc::Int::ContractsSupport attr_reader :code_snippets attr_reader :config attr_accessor :data_source - attr_writer :compiler contract C::KeywordArgs[config: Nanoc::Int::Configuration, code_snippets: C::IterOf[Nanoc::Int::CodeSnippet], data_source: C::Maybe[C::Named['Nanoc::DataSource']]] => C::Any def initialize(config:, code_snippets:, data_source:) @config = config @code_snippets = code_snippets @data_source = data_source + @preprocessed = false + ensure_identifier_uniqueness(@data_source.items, 'item') ensure_identifier_uniqueness(@data_source.layouts, 'layout') end contract C::None => self def compile - compiler.run_all + Nanoc::Int::Compiler.new_for(self).run_until_end self end - contract C::None => C::Named['Nanoc::Int::Compiler'] - def compiler - @compiler ||= Nanoc::Int::CompilerLoader.new.load(self) + def mark_as_preprocessed + @preprocessed = true + end + + def preprocessed? + @preprocessed end def items @data_source.items end