Class: Nanoc::Int::Compiler
- Inherits:
-
Object
- Object
- Nanoc::Int::Compiler
- Defined in:
- lib/nanoc/base/services/compiler.rb
Defined Under Namespace
Class Method Summary collapse
Instance Method Summary collapse
-
#compilation_context(reps:) ⇒ Object
-
#initialize(site, compiled_content_cache:, checksum_store:, action_sequence_store:, action_provider:, dependency_store:, outdatedness_store:) ⇒ Compiler
constructor
A new instance of Compiler.
-
#run_until_end ⇒ Object
-
#run_until_precompiled ⇒ Object
-
#run_until_preprocessed ⇒ Object
-
#run_until_reps_built ⇒ Object
Constructor Details
#initialize(site, compiled_content_cache:, checksum_store:, action_sequence_store:, action_provider:, dependency_store:, outdatedness_store:) ⇒ Compiler
Returns a new instance of Compiler
7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/nanoc/base/services/compiler.rb', line 7 def initialize(site, compiled_content_cache:, checksum_store:, action_sequence_store:, action_provider:, dependency_store:, outdatedness_store:) @site = site @compiled_content_cache = compiled_content_cache @checksum_store = checksum_store @action_sequence_store = action_sequence_store @dependency_store = dependency_store @action_provider = action_provider @outdatedness_store = outdatedness_store @snapshot_repo = Nanoc::Int::SnapshotRepo.new end |
Class Method Details
.new_for(site) ⇒ Object
21 22 23 |
# File 'lib/nanoc/base/services/compiler.rb', line 21 def self.new_for(site) Nanoc::Int::CompilerLoader.new.load(site) end |
Instance Method Details
#compilation_context(reps:) ⇒ Object
86 87 88 89 90 91 92 93 94 |
# File 'lib/nanoc/base/services/compiler.rb', line 86 def compilation_context(reps:) Nanoc::Int::CompilationContext.new( action_provider: @action_provider, reps: reps, site: @site, compiled_content_cache: @compiled_content_cache, snapshot_repo: @snapshot_repo, ) end |
#run_until_end ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/nanoc/base/services/compiler.rb', line 69 def run_until_end res = run_until_precompiled action_sequences = res.fetch(:action_sequences) reps = res.fetch(:reps) checksums = res.fetch(:checksums) outdated_items = res.fetch(:outdated_items) run_stage(forget_outdated_dependencies_stage, outdated_items) run_stage(store_pre_compilation_state_stage(action_sequences, reps), checksums) run_stage(prune_stage(reps)) run_stage(compile_reps_stage(action_sequences, reps)) run_stage(store_post_compilation_state_stage) run_stage(postprocess_stage(reps), self) ensure run_stage(cleanup_stage) end |
#run_until_precompiled ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/nanoc/base/services/compiler.rb', line 45 def run_until_precompiled @_res_precompiled ||= begin prev = run_until_reps_built action_sequences = prev.fetch(:action_sequences) reps = prev.fetch(:reps) run_stage(load_stores_stage) checksums = run_stage(calculate_checksums_stage) outdatedness_checker = create_outdatedness_checker( checksums: checksums, action_sequences: action_sequences, reps: reps, ) outdated_items = run_stage(determine_outdatedness_stage(outdatedness_checker, reps)) prev.merge( checksums: checksums, dependency_store: @dependency_store, outdatedness_checker: outdatedness_checker, outdated_items: outdated_items, ) end end |
#run_until_preprocessed ⇒ Object
25 26 27 28 29 30 |
# File 'lib/nanoc/base/services/compiler.rb', line 25 def run_until_preprocessed @_res_preprocessed ||= begin run_stage(preprocess_stage) {} end end |
#run_until_reps_built ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/nanoc/base/services/compiler.rb', line 32 def run_until_reps_built @_res_reps_built ||= begin prev = run_until_preprocessed res = run_stage(build_reps_stage) prev.merge( reps: res.fetch(:reps), action_sequences: res.fetch(:action_sequences), ) end end |