Sha256: 1ae0e0440109e58012925f96750211ba0a2783219a194c07f94221d54cec34e9

Contents?: true

Size: 1.44 KB

Versions: 1

Compression:

Stored size: 1.44 KB

Contents

module Nanoc::Int
  # @api private
  class CompilerLoader
    def load(site)
      rules_collection = Nanoc::Int::RulesCollection.new

      rule_memory_store = Nanoc::Int::RuleMemoryStore.new

      rule_memory_calculator =
        Nanoc::Int::RuleMemoryCalculator.new(
          rules_collection: rules_collection, site: site)

      dependency_store =
        Nanoc::Int::DependencyStore.new(site.items.to_a + site.layouts.to_a)

      checksum_store =
        Nanoc::Int::ChecksumStore.new(site: site)

      item_rep_repo = Nanoc::Int::ItemRepRepo.new

      outdatedness_checker =
        Nanoc::Int::OutdatednessChecker.new(
          site: site,
          checksum_store: checksum_store,
          dependency_store: dependency_store,
          rules_collection: rules_collection,
          rule_memory_store: rule_memory_store,
          rule_memory_calculator: rule_memory_calculator,
          reps: item_rep_repo,
        )

      params = {
        compiled_content_cache: Nanoc::Int::CompiledContentCache.new,
        checksum_store: checksum_store,
        rule_memory_store: rule_memory_store,
        rule_memory_calculator: rule_memory_calculator,
        dependency_store: dependency_store,
        outdatedness_checker: outdatedness_checker,
        reps: item_rep_repo,
      }

      compiler = Nanoc::Int::Compiler.new(site, rules_collection, params)

      Nanoc::Int::RulesLoader.new(site.config, rules_collection).load

      compiler
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
nanoc-4.1.0a1 lib/nanoc/base/services/compiler_loader.rb