class Nanoc::Int::Site

@api private

Attributes

code_snippets[R]
config[R]
items[R]
layouts[R]

Public Class Methods

new(config:, code_snippets:, items:, layouts:) click to toggle source

@param [Nanoc::Int::Configuration] config @param [Enumerable<Nanoc::Int::CodeSnippet>] #code_snippets @param [Enumerable<Nanoc::Int::Item>] items @param [Enumerable<Nanoc::Int::Layout>] layouts

# File lib/nanoc/base/entities/site.rb, line 8
def initialize(config,, code_snippets,, items,, layouts))
  @config = config
  @code_snippets = code_snippets
  @items = items
  @layouts = layouts

  ensure_identifier_uniqueness(@items, 'item')
  ensure_identifier_uniqueness(@layouts, 'layout')
end

Public Instance Methods

captures_store() click to toggle source

@api private

# File lib/nanoc/helpers/capturing.rb, line 51
def captures_store
  @captures_store ||= CapturesStore.new
end
captures_store_compiled_items() click to toggle source

@api private

# File lib/nanoc/helpers/capturing.rb, line 56
def captures_store_compiled_items
  require 'set'
  @captures_store_compiled_items ||= Set.new
end
compile() click to toggle source

Compiles the site.

@return [void]

@since 3.2.0

# File lib/nanoc/base/entities/site.rb, line 23
def compile
  compiler.run_all
end
compiler() click to toggle source

Returns the compiler for this site. Will create a new compiler if none exists yet.

@return [Nanoc::Int::Compiler] The compiler for this site

# File lib/nanoc/base/entities/site.rb, line 31
def compiler
  @compiler ||= Nanoc::Int::CompilerLoader.new.load(self)
end
ensure_identifier_uniqueness(objects, type) click to toggle source
# File lib/nanoc/base/entities/site.rb, line 50
def ensure_identifier_uniqueness(objects, type)
  seen = Set.new
  objects.each do |obj|
    if seen.include?(obj.identifier)
      raise Nanoc::Int::Errors::DuplicateIdentifier.new(obj.identifier, type)
    end
    seen << obj.identifier
  end
end
freeze() click to toggle source

Prevents all further modifications to itself, its items, its layouts etc.

@return [void]

# File lib/nanoc/base/entities/site.rb, line 43
def freeze
  config.freeze
  items.freeze
  layouts.freeze
  code_snippets.__nanoc_freeze_recursively
end