nanoc-core 4.12.20 → 4.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/nanoc/core/action_sequence.rb +4 -4
- data/lib/nanoc/core/action_sequence_store.rb +1 -1
- data/lib/nanoc/core/basic_item_rep_view.rb +1 -1
- data/lib/nanoc/core/binary_compiled_content_cache.rb +1 -1
- data/lib/nanoc/core/changes_stream.rb +4 -4
- data/lib/nanoc/core/checksum_store.rb +1 -1
- data/lib/nanoc/core/checksummer.rb +12 -7
- data/lib/nanoc/core/compilation_item_rep_view.rb +2 -2
- data/lib/nanoc/core/compilation_item_view.rb +2 -2
- data/lib/nanoc/core/compilation_phases/abstract.rb +2 -2
- data/lib/nanoc/core/compilation_phases/cache.rb +2 -2
- data/lib/nanoc/core/compilation_phases/mark_done.rb +1 -1
- data/lib/nanoc/core/compilation_phases/resume.rb +1 -1
- data/lib/nanoc/core/compilation_phases/write.rb +1 -1
- data/lib/nanoc/core/compilation_stages/build_reps.rb +2 -2
- data/lib/nanoc/core/compilation_stages/compile_reps.rb +24 -7
- data/lib/nanoc/core/compiled_content_cache.rb +3 -3
- data/lib/nanoc/core/compiled_content_store.rb +1 -1
- data/lib/nanoc/core/compiler.rb +25 -23
- data/lib/nanoc/core/compiler_loader.rb +9 -8
- data/lib/nanoc/core/config_view.rb +3 -3
- data/lib/nanoc/core/configuration.rb +4 -4
- data/lib/nanoc/core/content.rb +1 -1
- data/lib/nanoc/core/context.rb +1 -1
- data/lib/nanoc/core/core_ext/array.rb +12 -8
- data/lib/nanoc/core/data_source.rb +3 -3
- data/lib/nanoc/core/dependency_props.rb +2 -2
- data/lib/nanoc/core/dependency_store.rb +4 -4
- data/lib/nanoc/core/dependency_tracker.rb +5 -5
- data/lib/nanoc/core/document_view_mixin.rb +1 -1
- data/lib/nanoc/core/feature.rb +1 -1
- data/lib/nanoc/core/identifiable_collection.rb +2 -2
- data/lib/nanoc/core/identifiable_collection_view.rb +2 -2
- data/lib/nanoc/core/item.rb +1 -1
- data/lib/nanoc/core/item_rep_repo.rb +2 -2
- data/lib/nanoc/core/layout.rb +1 -1
- data/lib/nanoc/core/mutable_identifiable_collection_view.rb +1 -1
- data/lib/nanoc/core/mutable_item_collection_view.rb +1 -1
- data/lib/nanoc/core/notification_center.rb +3 -3
- data/lib/nanoc/core/outdatedness_store.rb +1 -1
- data/lib/nanoc/core/post_compile_item_rep_view.rb +1 -1
- data/lib/nanoc/core/site_loader.rb +5 -5
- data/lib/nanoc/core/textual_compiled_content_cache.rb +1 -1
- data/lib/nanoc/core/version.rb +1 -1
- metadata +5 -5
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: d667fdfe9740b04cfb89b52ae97602abc239d3744d85667b049a477fd7340c3a
         | 
| 4 | 
            +
              data.tar.gz: 58b70ca67a73647560e0761af9cc6d26ebd9eef643fa5145eae850209a096194
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: f4199cfa2dbbc0306afb33e476c72b258b1dd61fc979ca3d8ea4d4a49fb3d66fc8972f9577ea5d3ac264bdf15be6782538d392758ae5642cf304580e7e56259e
         | 
| 7 | 
            +
              data.tar.gz: cfc6633370c3a6784061518d8001396fc094c5529e596c2283b75cc4ec8f581f29ac5c401c12253df1cb4a5982192648f3a02d5ad67a271d218ea53e729b8544
         | 
| @@ -44,15 +44,15 @@ module Nanoc | |
| 44 44 | 
             
                  end
         | 
| 45 45 |  | 
| 46 46 | 
             
                  # contract C::Func[Nanoc::Core::ProcessingAction => C::Any] => self
         | 
| 47 | 
            -
                  def each(& | 
| 48 | 
            -
                    @actions.each(& | 
| 47 | 
            +
                  def each(&)
         | 
| 48 | 
            +
                    @actions.each(&)
         | 
| 49 49 | 
             
                    self
         | 
| 50 50 | 
             
                  end
         | 
| 51 51 |  | 
| 52 52 | 
             
                  # contract C::Func[Nanoc::Core::ProcessingAction => C::Any] => self
         | 
| 53 | 
            -
                  def map(& | 
| 53 | 
            +
                  def map(&)
         | 
| 54 54 | 
             
                    self.class.new(
         | 
| 55 | 
            -
                      actions: @actions.map(& | 
| 55 | 
            +
                      actions: @actions.map(&),
         | 
| 56 56 | 
             
                    )
         | 
| 57 57 | 
             
                  end
         | 
| 58 58 | 
             
                end
         | 
| @@ -11,7 +11,7 @@ module Nanoc | |
| 11 11 |  | 
| 12 12 | 
             
                  contract C::KeywordArgs[config: Nanoc::Core::Configuration] => C::Any
         | 
| 13 13 | 
             
                  def initialize(config:)
         | 
| 14 | 
            -
                    super(Nanoc::Core::Store.tmp_path_for(config | 
| 14 | 
            +
                    super(Nanoc::Core::Store.tmp_path_for(config:, store_name: 'rule_memory'), 2)
         | 
| 15 15 |  | 
| 16 16 | 
             
                    @action_sequences = {}
         | 
| 17 17 | 
             
                  end
         | 
| @@ -57,7 +57,7 @@ module Nanoc | |
| 57 57 | 
             
                  # @return [String] The item rep’s path.
         | 
| 58 58 | 
             
                  def path(snapshot: :last)
         | 
| 59 59 | 
             
                    @context.dependency_tracker.bounce(_unwrap.item, path: true)
         | 
| 60 | 
            -
                    @item_rep.path(snapshot: | 
| 60 | 
            +
                    @item_rep.path(snapshot:)
         | 
| 61 61 | 
             
                  end
         | 
| 62 62 |  | 
| 63 63 | 
             
                  # Returns the item that this item rep belongs to.
         | 
| @@ -11,7 +11,7 @@ module Nanoc | |
| 11 11 |  | 
| 12 12 | 
             
                  contract C::KeywordArgs[config: Nanoc::Core::Configuration] => C::Any
         | 
| 13 13 | 
             
                  def initialize(config:)
         | 
| 14 | 
            -
                    super(Nanoc::Core::Store.tmp_path_for(config | 
| 14 | 
            +
                    super(Nanoc::Core::Store.tmp_path_for(config:, store_name: 'binary_content'), 3)
         | 
| 15 15 |  | 
| 16 16 | 
             
                    @cache = {}
         | 
| 17 17 | 
             
                  end
         | 
| @@ -38,16 +38,16 @@ module Nanoc | |
| 38 38 | 
             
                    @listener&.to_stop&.call
         | 
| 39 39 | 
             
                  end
         | 
| 40 40 |  | 
| 41 | 
            -
                  def map(& | 
| 42 | 
            -
                    self.class.new(enum: @enum.map(& | 
| 41 | 
            +
                  def map(&)
         | 
| 42 | 
            +
                    self.class.new(enum: @enum.map(&))
         | 
| 43 43 | 
             
                  end
         | 
| 44 44 |  | 
| 45 45 | 
             
                  def to_enum
         | 
| 46 46 | 
             
                    @enum
         | 
| 47 47 | 
             
                  end
         | 
| 48 48 |  | 
| 49 | 
            -
                  def each(& | 
| 50 | 
            -
                    @enum.each(& | 
| 49 | 
            +
                  def each(&)
         | 
| 50 | 
            +
                    @enum.each(&)
         | 
| 51 51 | 
             
                    nil
         | 
| 52 52 | 
             
                  end
         | 
| 53 53 | 
             
                end
         | 
| @@ -16,7 +16,7 @@ module Nanoc | |
| 16 16 |  | 
| 17 17 | 
             
                  contract C::KeywordArgs[config: Nanoc::Core::Configuration, objects: C::IterOf[c_obj]] => C::Any
         | 
| 18 18 | 
             
                  def initialize(config:, objects:)
         | 
| 19 | 
            -
                    super(Nanoc::Core::Store.tmp_path_for(config | 
| 19 | 
            +
                    super(Nanoc::Core::Store.tmp_path_for(config:, store_name: 'checksums'), 3)
         | 
| 20 20 |  | 
| 21 21 | 
             
                    @objects = objects
         | 
| 22 22 |  | 
| @@ -61,14 +61,19 @@ module Nanoc | |
| 61 61 |  | 
| 62 62 | 
             
                    private
         | 
| 63 63 |  | 
| 64 | 
            -
                    def update(obj, digest, visited =  | 
| 65 | 
            -
                       | 
| 66 | 
            -
             | 
| 67 | 
            -
             | 
| 68 | 
            -
                        digest.update( | 
| 64 | 
            +
                    def update(obj, digest, visited = {})
         | 
| 65 | 
            +
                      num = visited[obj]
         | 
| 66 | 
            +
                      if num
         | 
| 67 | 
            +
                        # If there already is an entry for this object, refer to it by its number.
         | 
| 68 | 
            +
                        digest.update("@#{num}")
         | 
| 69 69 | 
             
                      else
         | 
| 70 | 
            -
                         | 
| 71 | 
            -
                         | 
| 70 | 
            +
                        # This object isn’t known yet. Assign it a new number.
         | 
| 71 | 
            +
                        num = visited.length
         | 
| 72 | 
            +
                        visited[obj] = num
         | 
| 73 | 
            +
             | 
| 74 | 
            +
                        digest.update(obj.class.to_s)
         | 
| 75 | 
            +
                        digest.update("##{num}<")
         | 
| 76 | 
            +
                        behavior_for(obj).update(obj, digest) { |o| update(o, digest, visited) }
         | 
| 72 77 | 
             
                        digest.update('>')
         | 
| 73 78 | 
             
                      end
         | 
| 74 79 | 
             
                    end
         | 
| @@ -24,7 +24,7 @@ module Nanoc | |
| 24 24 | 
             
                  def raw_path(snapshot: :last)
         | 
| 25 25 | 
             
                    @context.dependency_tracker.bounce(_unwrap.item, compiled_content: true)
         | 
| 26 26 |  | 
| 27 | 
            -
                    res = @item_rep.raw_path(snapshot: | 
| 27 | 
            +
                    res = @item_rep.raw_path(snapshot:)
         | 
| 28 28 |  | 
| 29 29 | 
             
                    unless @item_rep.compiled?
         | 
| 30 30 | 
             
                      Fiber.yield(Nanoc::Core::Errors::UnmetDependency.new(@item_rep, snapshot))
         | 
| @@ -50,7 +50,7 @@ module Nanoc | |
| 50 50 | 
             
                  # @return [String] The content at the given snapshot.
         | 
| 51 51 | 
             
                  def compiled_content(snapshot: nil)
         | 
| 52 52 | 
             
                    @context.dependency_tracker.bounce(_unwrap.item, compiled_content: true)
         | 
| 53 | 
            -
                    @context.compiled_content_store.compiled_content(rep: _unwrap, snapshot: | 
| 53 | 
            +
                    @context.compiled_content_store.compiled_content(rep: _unwrap, snapshot:)
         | 
| 54 54 | 
             
                  end
         | 
| 55 55 | 
             
                end
         | 
| 56 56 | 
             
              end
         | 
| @@ -16,7 +16,7 @@ module Nanoc | |
| 16 16 | 
             
                  #
         | 
| 17 17 | 
             
                  # @return [String] The content of the given rep at the given snapshot.
         | 
| 18 18 | 
             
                  def compiled_content(rep: :default, snapshot: nil)
         | 
| 19 | 
            -
                    reps.fetch(rep).compiled_content(snapshot: | 
| 19 | 
            +
                    reps.fetch(rep).compiled_content(snapshot:)
         | 
| 20 20 | 
             
                  end
         | 
| 21 21 |  | 
| 22 22 | 
             
                  # Returns the item path, as used when being linked to. It starts
         | 
| @@ -33,7 +33,7 @@ module Nanoc | |
| 33 33 | 
             
                  #
         | 
| 34 34 | 
             
                  # @return [String] The item’s path.
         | 
| 35 35 | 
             
                  def path(rep: :default, snapshot: :last)
         | 
| 36 | 
            -
                    reps.fetch(rep).path(snapshot: | 
| 36 | 
            +
                    reps.fetch(rep).path(snapshot:)
         | 
| 37 37 | 
             
                  end
         | 
| 38 38 |  | 
| 39 39 | 
             
                  # Returns the representations of this item.
         | 
| @@ -20,9 +20,9 @@ module Nanoc | |
| 20 20 |  | 
| 21 21 | 
             
                    def call(rep, is_outdated:)
         | 
| 22 22 | 
             
                      notify(:phase_started, rep)
         | 
| 23 | 
            -
                      run(rep, is_outdated: | 
| 23 | 
            +
                      run(rep, is_outdated:) do
         | 
| 24 24 | 
             
                        notify(:phase_yielded, rep)
         | 
| 25 | 
            -
                        @wrapped.call(rep, is_outdated: | 
| 25 | 
            +
                        @wrapped.call(rep, is_outdated:)
         | 
| 26 26 | 
             
                        notify(:phase_resumed, rep)
         | 
| 27 27 | 
             
                      end
         | 
| 28 28 | 
             
                      notify(:phase_ended, rep)
         | 
| @@ -9,7 +9,7 @@ module Nanoc | |
| 9 9 | 
             
                    include Nanoc::Core::ContractsSupport
         | 
| 10 10 |  | 
| 11 11 | 
             
                    def initialize(wrapped:, compiled_content_cache:, compiled_content_store:)
         | 
| 12 | 
            -
                      super(wrapped: | 
| 12 | 
            +
                      super(wrapped:)
         | 
| 13 13 |  | 
| 14 14 | 
             
                      @compiled_content_cache = compiled_content_cache
         | 
| 15 15 | 
             
                      @compiled_content_store = compiled_content_store
         | 
| @@ -17,7 +17,7 @@ module Nanoc | |
| 17 17 |  | 
| 18 18 | 
             
                    contract Nanoc::Core::ItemRep, C::KeywordArgs[is_outdated: C::Bool], C::Func[C::None => C::Any] => C::Any
         | 
| 19 19 | 
             
                    def run(rep, is_outdated:)
         | 
| 20 | 
            -
                      if can_reuse_content_for_rep?(rep, is_outdated: | 
| 20 | 
            +
                      if can_reuse_content_for_rep?(rep, is_outdated:)
         | 
| 21 21 | 
             
                        # If cached content can be used for this item rep, do so, and skip
         | 
| 22 22 | 
             
                        # recalculation of the item rep compiled content.
         | 
| 23 23 | 
             
                        Nanoc::Core::NotificationCenter.post(:cached_content_used, rep)
         | 
| @@ -11,7 +11,7 @@ module Nanoc | |
| 11 11 |  | 
| 12 12 | 
             
                    contract Nanoc::Core::ItemRep, C::KeywordArgs[is_outdated: C::Bool], C::Func[C::None => C::Any] => C::Any
         | 
| 13 13 | 
             
                    def run(rep, is_outdated:, &block)
         | 
| 14 | 
            -
                      fiber = fiber_for(rep, is_outdated | 
| 14 | 
            +
                      fiber = fiber_for(rep, is_outdated:, &block)
         | 
| 15 15 | 
             
                      while fiber.alive?
         | 
| 16 16 | 
             
                        res = fiber.resume
         | 
| 17 17 |  | 
| @@ -7,30 +7,47 @@ module Nanoc | |
| 7 7 | 
             
                    include Nanoc::Core::ContractsSupport
         | 
| 8 8 | 
             
                    include Nanoc::Core::Assertions::Mixin
         | 
| 9 9 |  | 
| 10 | 
            -
                    def initialize(reps:, outdatedness_store:, dependency_store:, action_sequences:, compilation_context:, compiled_content_cache:)
         | 
| 10 | 
            +
                    def initialize(reps:, outdatedness_store:, dependency_store:, action_sequences:, compilation_context:, compiled_content_cache:, focus:)
         | 
| 11 11 | 
             
                      @reps = reps
         | 
| 12 12 | 
             
                      @outdatedness_store = outdatedness_store
         | 
| 13 13 | 
             
                      @dependency_store = dependency_store
         | 
| 14 14 | 
             
                      @action_sequences = action_sequences
         | 
| 15 15 | 
             
                      @compilation_context = compilation_context
         | 
| 16 16 | 
             
                      @compiled_content_cache = compiled_content_cache
         | 
| 17 | 
            +
                      @focus = focus
         | 
| 17 18 | 
             
                    end
         | 
| 18 19 |  | 
| 19 20 | 
             
                    def run
         | 
| 20 21 | 
             
                      outdated_reps = @reps.select { |r| @outdatedness_store.include?(r) }
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                      # If a focus is specified, only compile reps that match this focus.
         | 
| 24 | 
            +
                      # (If no focus is specified, `@focus` will be `nil`, not an empty array.)
         | 
| 25 | 
            +
                      if @focus
         | 
| 26 | 
            +
                        focus_patterns = @focus.map { |f| Nanoc::Core::Pattern.from(f) }
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                        # Find reps for which at least one focus pattern matches.
         | 
| 29 | 
            +
                        outdated_reps = outdated_reps.select do |irep|
         | 
| 30 | 
            +
                          focus_patterns.any? do |focus_pattern|
         | 
| 31 | 
            +
                            focus_pattern.match?(irep.item.identifier)
         | 
| 32 | 
            +
                          end
         | 
| 33 | 
            +
                        end
         | 
| 34 | 
            +
                      end
         | 
| 35 | 
            +
             | 
| 21 36 | 
             
                      selector = Nanoc::Core::ItemRepSelector.new(outdated_reps)
         | 
| 22 37 | 
             
                      run_phase_stack do |phase_stack|
         | 
| 23 38 | 
             
                        selector.each do |rep|
         | 
| 24 39 | 
             
                          handle_errors_while(rep) do
         | 
| 25 | 
            -
                            compile_rep(rep, phase_stack | 
| 40 | 
            +
                            compile_rep(rep, phase_stack:, is_outdated: @outdatedness_store.include?(rep))
         | 
| 26 41 | 
             
                          end
         | 
| 27 42 | 
             
                        end
         | 
| 28 43 | 
             
                      end
         | 
| 29 44 |  | 
| 30 | 
            -
                       | 
| 31 | 
            -
                         | 
| 32 | 
            -
             | 
| 33 | 
            -
             | 
| 45 | 
            +
                      unless @focus
         | 
| 46 | 
            +
                        assert Nanoc::Core::Assertions::AllItemRepsHaveCompiledContent.new(
         | 
| 47 | 
            +
                          compiled_content_cache: @compiled_content_cache,
         | 
| 48 | 
            +
                          item_reps: @reps,
         | 
| 49 | 
            +
                        )
         | 
| 50 | 
            +
                      end
         | 
| 34 51 | 
             
                    ensure
         | 
| 35 52 | 
             
                      @outdatedness_store.store
         | 
| 36 53 | 
             
                      @compiled_content_cache.prune(items: @reps.map(&:item).uniq)
         | 
| @@ -46,7 +63,7 @@ module Nanoc | |
| 46 63 | 
             
                    end
         | 
| 47 64 |  | 
| 48 65 | 
             
                    def compile_rep(rep, phase_stack:, is_outdated:)
         | 
| 49 | 
            -
                      phase_stack.call(rep, is_outdated: | 
| 66 | 
            +
                      phase_stack.call(rep, is_outdated:)
         | 
| 50 67 | 
             
                    end
         | 
| 51 68 |  | 
| 52 69 | 
             
                    def run_phase_stack
         | 
| @@ -11,8 +11,8 @@ module Nanoc | |
| 11 11 |  | 
| 12 12 | 
             
                  contract C::KeywordArgs[config: Nanoc::Core::Configuration] => C::Any
         | 
| 13 13 | 
             
                  def initialize(config:)
         | 
| 14 | 
            -
                    @textual_cache = Nanoc::Core::TextualCompiledContentCache.new(config: | 
| 15 | 
            -
                    @binary_cache = Nanoc::Core::BinaryCompiledContentCache.new(config: | 
| 14 | 
            +
                    @textual_cache = Nanoc::Core::TextualCompiledContentCache.new(config:)
         | 
| 15 | 
            +
                    @binary_cache = Nanoc::Core::BinaryCompiledContentCache.new(config:)
         | 
| 16 16 |  | 
| 17 17 | 
             
                    @wrapped_caches = [@textual_cache, @binary_cache]
         | 
| 18 18 | 
             
                  end
         | 
| @@ -47,7 +47,7 @@ module Nanoc | |
| 47 47 | 
             
                  end
         | 
| 48 48 |  | 
| 49 49 | 
             
                  def prune(items:)
         | 
| 50 | 
            -
                    @wrapped_caches.each { |w| w.prune(items: | 
| 50 | 
            +
                    @wrapped_caches.each { |w| w.prune(items:) }
         | 
| 51 51 | 
             
                  end
         | 
| 52 52 |  | 
| 53 53 | 
             
                  # True if there is cached compiled content available for this item, and
         | 
| @@ -64,7 +64,7 @@ module Nanoc | |
| 64 64 |  | 
| 65 65 | 
             
                  contract C::KeywordArgs[rep: Nanoc::Core::ItemRep, snapshot: C::Optional[C::Maybe[Symbol]]] => String
         | 
| 66 66 | 
             
                  def compiled_content(rep:, snapshot: nil)
         | 
| 67 | 
            -
                    snapshot_content = raw_compiled_content(rep | 
| 67 | 
            +
                    snapshot_content = raw_compiled_content(rep:, snapshot:)
         | 
| 68 68 |  | 
| 69 69 | 
             
                    if snapshot_content.binary?
         | 
| 70 70 | 
             
                      raise Nanoc::Core::Errors::CannotGetCompiledContentOfBinaryItem.new(rep)
         | 
    
        data/lib/nanoc/core/compiler.rb
    CHANGED
    
    | @@ -6,16 +6,16 @@ module Nanoc | |
| 6 6 | 
             
                  include Nanoc::Core::ContractsSupport
         | 
| 7 7 |  | 
| 8 8 | 
             
                  contract Nanoc::Core::Site => C::Any
         | 
| 9 | 
            -
                  def self.compile(site)
         | 
| 10 | 
            -
                    new_for(site).run_until_end
         | 
| 9 | 
            +
                  def self.compile(site, focus: nil)
         | 
| 10 | 
            +
                    new_for(site, focus:).run_until_end
         | 
| 11 11 | 
             
                  end
         | 
| 12 12 |  | 
| 13 13 | 
             
                  contract Nanoc::Core::Site => Nanoc::Core::Compiler
         | 
| 14 | 
            -
                  def self.new_for(site)
         | 
| 15 | 
            -
                    Nanoc::Core::CompilerLoader.new.load(site)
         | 
| 14 | 
            +
                  def self.new_for(site, focus: nil)
         | 
| 15 | 
            +
                    Nanoc::Core::CompilerLoader.new.load(site, focus:)
         | 
| 16 16 | 
             
                  end
         | 
| 17 17 |  | 
| 18 | 
            -
                  def initialize(site, compiled_content_cache:, checksum_store:, action_sequence_store:, action_provider:, dependency_store:, outdatedness_store:)
         | 
| 18 | 
            +
                  def initialize(site, compiled_content_cache:, checksum_store:, action_sequence_store:, action_provider:, dependency_store:, outdatedness_store:, focus:)
         | 
| 19 19 | 
             
                    @site = site
         | 
| 20 20 |  | 
| 21 21 | 
             
                    # Needed because configuration is mutable :(
         | 
| @@ -27,6 +27,7 @@ module Nanoc | |
| 27 27 | 
             
                    @dependency_store       = dependency_store
         | 
| 28 28 | 
             
                    @action_provider        = action_provider
         | 
| 29 29 | 
             
                    @outdatedness_store     = outdatedness_store
         | 
| 30 | 
            +
                    @focus                  = focus
         | 
| 30 31 |  | 
| 31 32 | 
             
                    @compiled_content_store = Nanoc::Core::CompiledContentStore.new
         | 
| 32 33 | 
             
                  end
         | 
| @@ -60,17 +61,17 @@ module Nanoc | |
| 60 61 | 
             
                      load_stores_stage.call
         | 
| 61 62 | 
             
                      checksums = calculate_checksums_stage.call
         | 
| 62 63 | 
             
                      outdatedness_checker = create_outdatedness_checker(
         | 
| 63 | 
            -
                        checksums | 
| 64 | 
            -
                        action_sequences | 
| 65 | 
            -
                        reps | 
| 64 | 
            +
                        checksums:,
         | 
| 65 | 
            +
                        action_sequences:,
         | 
| 66 | 
            +
                        reps:,
         | 
| 66 67 | 
             
                      )
         | 
| 67 68 | 
             
                      outdated_items = determine_outdatedness_stage(outdatedness_checker, reps).call
         | 
| 68 69 |  | 
| 69 70 | 
             
                      prev.merge(
         | 
| 70 | 
            -
                        checksums | 
| 71 | 
            +
                        checksums:,
         | 
| 71 72 | 
             
                        dependency_store: @dependency_store,
         | 
| 72 | 
            -
                        outdatedness_checker | 
| 73 | 
            -
                        outdated_items | 
| 73 | 
            +
                        outdatedness_checker:,
         | 
| 74 | 
            +
                        outdated_items:,
         | 
| 74 75 | 
             
                      )
         | 
| 75 76 | 
             
                    end
         | 
| 76 77 | 
             
                  end
         | 
| @@ -95,7 +96,7 @@ module Nanoc | |
| 95 96 | 
             
                  def compilation_context(reps:)
         | 
| 96 97 | 
             
                    Nanoc::Core::CompilationContext.new(
         | 
| 97 98 | 
             
                      action_provider: @action_provider,
         | 
| 98 | 
            -
                      reps | 
| 99 | 
            +
                      reps:,
         | 
| 99 100 | 
             
                      site: @site,
         | 
| 100 101 | 
             
                      compiled_content_cache: @compiled_content_cache,
         | 
| 101 102 | 
             
                      compiled_content_store: @compiled_content_store,
         | 
| @@ -110,9 +111,9 @@ module Nanoc | |
| 110 111 | 
             
                      checksum_store: @checksum_store,
         | 
| 111 112 | 
             
                      dependency_store: @dependency_store,
         | 
| 112 113 | 
             
                      action_sequence_store: @action_sequence_store,
         | 
| 113 | 
            -
                      action_sequences | 
| 114 | 
            -
                      checksums | 
| 115 | 
            -
                      reps | 
| 114 | 
            +
                      action_sequences:,
         | 
| 115 | 
            +
                      checksums:,
         | 
| 116 | 
            +
                      reps:,
         | 
| 116 117 | 
             
                    )
         | 
| 117 118 | 
             
                  end
         | 
| 118 119 |  | 
| @@ -135,7 +136,7 @@ module Nanoc | |
| 135 136 | 
             
                  def prune_stage(reps)
         | 
| 136 137 | 
             
                    @_prune_stage ||= ::Nanoc::Core::CompilationStages::Prune.new(
         | 
| 137 138 | 
             
                      config: @site.config,
         | 
| 138 | 
            -
                      reps | 
| 139 | 
            +
                      reps:,
         | 
| 139 140 | 
             
                    )
         | 
| 140 141 | 
             
                  end
         | 
| 141 142 |  | 
| @@ -160,30 +161,31 @@ module Nanoc | |
| 160 161 |  | 
| 161 162 | 
             
                  def determine_outdatedness_stage(outdatedness_checker, reps)
         | 
| 162 163 | 
             
                    @_determine_outdatedness_stage ||= ::Nanoc::Core::CompilationStages::DetermineOutdatedness.new(
         | 
| 163 | 
            -
                      reps | 
| 164 | 
            -
                      outdatedness_checker | 
| 164 | 
            +
                      reps:,
         | 
| 165 | 
            +
                      outdatedness_checker:,
         | 
| 165 166 | 
             
                      outdatedness_store: @outdatedness_store,
         | 
| 166 167 | 
             
                    )
         | 
| 167 168 | 
             
                  end
         | 
| 168 169 |  | 
| 169 170 | 
             
                  def store_pre_compilation_state_stage(action_sequences, reps)
         | 
| 170 171 | 
             
                    @_store_pre_compilation_state_stage ||= ::Nanoc::Core::CompilationStages::StorePreCompilationState.new(
         | 
| 171 | 
            -
                      reps | 
| 172 | 
            +
                      reps:,
         | 
| 172 173 | 
             
                      layouts: @site.layouts,
         | 
| 173 174 | 
             
                      checksum_store: @checksum_store,
         | 
| 174 175 | 
             
                      action_sequence_store: @action_sequence_store,
         | 
| 175 | 
            -
                      action_sequences | 
| 176 | 
            +
                      action_sequences:,
         | 
| 176 177 | 
             
                    )
         | 
| 177 178 | 
             
                  end
         | 
| 178 179 |  | 
| 179 180 | 
             
                  def compile_reps_stage(action_sequences, reps)
         | 
| 180 181 | 
             
                    @_compile_reps_stage ||= ::Nanoc::Core::CompilationStages::CompileReps.new(
         | 
| 181 | 
            -
                      reps | 
| 182 | 
            +
                      reps:,
         | 
| 182 183 | 
             
                      outdatedness_store: @outdatedness_store,
         | 
| 183 184 | 
             
                      dependency_store: @dependency_store,
         | 
| 184 | 
            -
                      action_sequences | 
| 185 | 
            -
                      compilation_context: compilation_context(reps: | 
| 185 | 
            +
                      action_sequences:,
         | 
| 186 | 
            +
                      compilation_context: compilation_context(reps:),
         | 
| 186 187 | 
             
                      compiled_content_cache: @compiled_content_cache,
         | 
| 188 | 
            +
                      focus: @focus,
         | 
| 187 189 | 
             
                    )
         | 
| 188 190 | 
             
                  end
         | 
| 189 191 |  | 
| @@ -4,7 +4,7 @@ module Nanoc | |
| 4 4 | 
             
              module Core
         | 
| 5 5 | 
             
                # @api private
         | 
| 6 6 | 
             
                class CompilerLoader
         | 
| 7 | 
            -
                  def load(site, action_provider: nil)
         | 
| 7 | 
            +
                  def load(site, focus: nil, action_provider: nil)
         | 
| 8 8 | 
             
                    action_sequence_store = Nanoc::Core::ActionSequenceStore.new(config: site.config)
         | 
| 9 9 |  | 
| 10 10 | 
             
                    dependency_store =
         | 
| @@ -13,7 +13,7 @@ module Nanoc | |
| 13 13 | 
             
                    objects = site.items.to_a + site.layouts.to_a + site.code_snippets + [site.config]
         | 
| 14 14 |  | 
| 15 15 | 
             
                    checksum_store =
         | 
| 16 | 
            -
                      Nanoc::Core::ChecksumStore.new(config: site.config, objects: | 
| 16 | 
            +
                      Nanoc::Core::ChecksumStore.new(config: site.config, objects:)
         | 
| 17 17 |  | 
| 18 18 | 
             
                    action_provider ||= Nanoc::Core::ActionProvider.named(site.config.action_provider).for(site)
         | 
| 19 19 |  | 
| @@ -24,12 +24,13 @@ module Nanoc | |
| 24 24 | 
             
                      compiled_content_cache_class.new(config: site.config)
         | 
| 25 25 |  | 
| 26 26 | 
             
                    params = {
         | 
| 27 | 
            -
                      compiled_content_cache | 
| 28 | 
            -
                      checksum_store | 
| 29 | 
            -
                      action_sequence_store | 
| 30 | 
            -
                      dependency_store | 
| 31 | 
            -
                      action_provider | 
| 32 | 
            -
                      outdatedness_store | 
| 27 | 
            +
                      compiled_content_cache:,
         | 
| 28 | 
            +
                      checksum_store:,
         | 
| 29 | 
            +
                      action_sequence_store:,
         | 
| 30 | 
            +
                      dependency_store:,
         | 
| 31 | 
            +
                      action_provider:,
         | 
| 32 | 
            +
                      outdatedness_store:,
         | 
| 33 | 
            +
                      focus:,
         | 
| 33 34 | 
             
                    }
         | 
| 34 35 |  | 
| 35 36 | 
             
                    Nanoc::Core::Compiler.new(site, **params)
         | 
| @@ -20,7 +20,7 @@ module Nanoc | |
| 20 20 | 
             
                  end
         | 
| 21 21 |  | 
| 22 22 | 
             
                  # @see Hash#fetch
         | 
| 23 | 
            -
                  def fetch(key, fallback = Nanoc::Core::UNDEFINED, & | 
| 23 | 
            +
                  def fetch(key, fallback = Nanoc::Core::UNDEFINED, &)
         | 
| 24 24 | 
             
                    @context.dependency_tracker.bounce(_unwrap, attributes: [key])
         | 
| 25 25 | 
             
                    @config.fetch(key) do
         | 
| 26 26 | 
             
                      if !Nanoc::Core::UNDEFINED.equal?(fallback)
         | 
| @@ -46,9 +46,9 @@ module Nanoc | |
| 46 46 | 
             
                  end
         | 
| 47 47 |  | 
| 48 48 | 
             
                  # @see Hash#each
         | 
| 49 | 
            -
                  def each(& | 
| 49 | 
            +
                  def each(&)
         | 
| 50 50 | 
             
                    @context.dependency_tracker.bounce(_unwrap, attributes: true)
         | 
| 51 | 
            -
                    @config.each(& | 
| 51 | 
            +
                    @config.each(&)
         | 
| 52 52 | 
             
                  end
         | 
| 53 53 |  | 
| 54 54 | 
             
                  # @see Configuration#env_name
         | 
| @@ -72,7 +72,7 @@ module Nanoc | |
| 72 72 | 
             
                    # Load given environment configuration
         | 
| 73 73 | 
             
                    env_config = @wrapped[ENVIRONMENTS_CONFIG_KEY].fetch(env_name.to_sym, {})
         | 
| 74 74 |  | 
| 75 | 
            -
                    self.class.new(hash: @wrapped, dir: @dir, env_name: | 
| 75 | 
            +
                    self.class.new(hash: @wrapped, dir: @dir, env_name:).merge(env_config)
         | 
| 76 76 | 
             
                  end
         | 
| 77 77 |  | 
| 78 78 | 
             
                  contract C::None => Hash
         | 
| @@ -102,7 +102,7 @@ module Nanoc | |
| 102 102 | 
             
                  end
         | 
| 103 103 |  | 
| 104 104 | 
             
                  contract C::Any, C::Maybe[C::Any], C::Maybe[C::Func[C::None => C::Any]] => C::Any
         | 
| 105 | 
            -
                  def fetch(key, fallback = Nanoc::Core::UNDEFINED, & | 
| 105 | 
            +
                  def fetch(key, fallback = Nanoc::Core::UNDEFINED, &)
         | 
| 106 106 | 
             
                    @wrapped.fetch(key) do
         | 
| 107 107 | 
             
                      if !Nanoc::Core::UNDEFINED.equal?(fallback)
         | 
| 108 108 | 
             
                        fallback
         | 
| @@ -136,8 +136,8 @@ module Nanoc | |
| 136 136 | 
             
                  end
         | 
| 137 137 |  | 
| 138 138 | 
             
                  contract C::Func[C::Any, C::Any => C::Any] => self
         | 
| 139 | 
            -
                  def each(& | 
| 140 | 
            -
                    @wrapped.each(& | 
| 139 | 
            +
                  def each(&)
         | 
| 140 | 
            +
                    @wrapped.each(&)
         | 
| 141 141 | 
             
                    self
         | 
| 142 142 | 
             
                  end
         | 
| 143 143 |  | 
    
        data/lib/nanoc/core/content.rb
    CHANGED
    
    
    
        data/lib/nanoc/core/context.rb
    CHANGED
    
    | @@ -39,7 +39,7 @@ module Nanoc | |
| 39 39 | 
             
                  end
         | 
| 40 40 | 
             
                  # rubocop:enable Naming/AccessorMethodName
         | 
| 41 41 |  | 
| 42 | 
            -
                  def method_missing(method, *args, & | 
| 42 | 
            +
                  def method_missing(method, *args, &)
         | 
| 43 43 | 
             
                    ivar_name = '@' + method.to_s
         | 
| 44 44 | 
             
                    if instance_variable_defined?(ivar_name)
         | 
| 45 45 | 
             
                      instance_variable_get(ivar_name)
         | 
| @@ -10,19 +10,23 @@ module Nanoc | |
| 10 10 | 
             
                    #
         | 
| 11 11 | 
             
                    # @return [Array] The converted array
         | 
| 12 12 | 
             
                    def __nanoc_symbolize_keys_recursively
         | 
| 13 | 
            -
                       | 
| 14 | 
            -
             | 
| 15 | 
            -
             | 
| 13 | 
            +
                      map do |element|
         | 
| 14 | 
            +
                        if element.respond_to?(:__nanoc_symbolize_keys_recursively)
         | 
| 15 | 
            +
                          element.__nanoc_symbolize_keys_recursively
         | 
| 16 | 
            +
                        else
         | 
| 17 | 
            +
                          element
         | 
| 18 | 
            +
                        end
         | 
| 16 19 | 
             
                      end
         | 
| 17 | 
            -
                      array
         | 
| 18 20 | 
             
                    end
         | 
| 19 21 |  | 
| 20 22 | 
             
                    def __nanoc_stringify_keys_recursively
         | 
| 21 | 
            -
                       | 
| 22 | 
            -
             | 
| 23 | 
            -
             | 
| 23 | 
            +
                      map do |element|
         | 
| 24 | 
            +
                        if element.respond_to?(:__nanoc_stringify_keys_recursively)
         | 
| 25 | 
            +
                          element.__nanoc_stringify_keys_recursively
         | 
| 26 | 
            +
                        else
         | 
| 27 | 
            +
                          element
         | 
| 28 | 
            +
                        end
         | 
| 24 29 | 
             
                      end
         | 
| 25 | 
            -
                      array
         | 
| 26 30 | 
             
                    end
         | 
| 27 31 |  | 
| 28 32 | 
             
                    # Freezes the contents of the array, as well as all array elements. The
         | 
| @@ -144,8 +144,8 @@ module Nanoc | |
| 144 144 | 
             
                  #
         | 
| 145 145 | 
             
                  # @param [String, nil] attributes_checksum_data
         | 
| 146 146 | 
             
                  def new_item(content, attributes, identifier, binary: false, checksum_data: nil, content_checksum_data: nil, attributes_checksum_data: nil)
         | 
| 147 | 
            -
                    content = Nanoc::Core::Content.create(content, binary: | 
| 148 | 
            -
                    Nanoc::Core::Item.new(content, attributes, identifier, checksum_data | 
| 147 | 
            +
                    content = Nanoc::Core::Content.create(content, binary:)
         | 
| 148 | 
            +
                    Nanoc::Core::Item.new(content, attributes, identifier, checksum_data:, content_checksum_data:, attributes_checksum_data:)
         | 
| 149 149 | 
             
                  end
         | 
| 150 150 |  | 
| 151 151 | 
             
                  # Creates a new in-memory layout instance. This is intended for use within
         | 
| @@ -163,7 +163,7 @@ module Nanoc | |
| 163 163 | 
             
                  #
         | 
| 164 164 | 
             
                  # @param [String, nil] attributes_checksum_data
         | 
| 165 165 | 
             
                  def new_layout(raw_content, attributes, identifier, checksum_data: nil, content_checksum_data: nil, attributes_checksum_data: nil)
         | 
| 166 | 
            -
                    Nanoc::Core::Layout.new(raw_content, attributes, identifier, checksum_data | 
| 166 | 
            +
                    Nanoc::Core::Layout.new(raw_content, attributes, identifier, checksum_data:, content_checksum_data:, attributes_checksum_data:)
         | 
| 167 167 | 
             
                  end
         | 
| 168 168 | 
             
                end
         | 
| 169 169 | 
             
              end
         | 
| @@ -42,7 +42,7 @@ module Nanoc | |
| 42 42 |  | 
| 43 43 | 
             
                  contract Nanoc::Core::ItemCollection, Nanoc::Core::LayoutCollection, Nanoc::Core::Configuration => C::Any
         | 
| 44 44 | 
             
                  def initialize(items, layouts, config)
         | 
| 45 | 
            -
                    super(Nanoc::Core::Store.tmp_path_for(config | 
| 45 | 
            +
                    super(Nanoc::Core::Store.tmp_path_for(config:, store_name: 'dependencies'), 6)
         | 
| 46 46 |  | 
| 47 47 | 
             
                    @config = config
         | 
| 48 48 | 
             
                    @items = items
         | 
| @@ -142,10 +142,10 @@ module Nanoc | |
| 142 142 | 
             
                    end
         | 
| 143 143 |  | 
| 144 144 | 
             
                    existing_props = @graph.props_for(dst_ref, src_ref)
         | 
| 145 | 
            -
                    new_props = Nanoc::Core::DependencyProps.new(raw_content | 
| 145 | 
            +
                    new_props = Nanoc::Core::DependencyProps.new(raw_content:, attributes:, compiled_content:, path:)
         | 
| 146 146 | 
             
                    props = existing_props ? existing_props.merge(new_props) : new_props
         | 
| 147 147 |  | 
| 148 | 
            -
                    @graph.add_edge(dst_ref, src_ref, props: | 
| 148 | 
            +
                    @graph.add_edge(dst_ref, src_ref, props:)
         | 
| 149 149 | 
             
                  end
         | 
| 150 150 |  | 
| 151 151 | 
             
                  def add_vertex_for(obj)
         | 
| @@ -231,7 +231,7 @@ module Nanoc | |
| 231 231 | 
             
                      to    = to_index && previous_refs[to_index]
         | 
| 232 232 | 
             
                      props = Nanoc::Core::DependencyProps.new(**props)
         | 
| 233 233 |  | 
| 234 | 
            -
                      @graph.add_edge(from, to, props: | 
| 234 | 
            +
                      @graph.add_edge(from, to, props:)
         | 
| 235 235 | 
             
                    end
         | 
| 236 236 |  | 
| 237 237 | 
             
                    # Record dependency from all items on new items
         | 
| @@ -49,10 +49,10 @@ module Nanoc | |
| 49 49 | 
             
                      @dependency_store.record_dependency(
         | 
| 50 50 | 
             
                        @stack.last,
         | 
| 51 51 | 
             
                        obj,
         | 
| 52 | 
            -
                        raw_content | 
| 53 | 
            -
                        attributes | 
| 54 | 
            -
                        compiled_content | 
| 55 | 
            -
                        path | 
| 52 | 
            +
                        raw_content:,
         | 
| 53 | 
            +
                        attributes:,
         | 
| 54 | 
            +
                        compiled_content:,
         | 
| 55 | 
            +
                        path:,
         | 
| 56 56 | 
             
                      )
         | 
| 57 57 | 
             
                    end
         | 
| 58 58 |  | 
| @@ -66,7 +66,7 @@ module Nanoc | |
| 66 66 |  | 
| 67 67 | 
             
                  contract C_OBJ, C_ARGS => C::Any
         | 
| 68 68 | 
             
                  def bounce(obj, raw_content: false, attributes: false, compiled_content: false, path: false)
         | 
| 69 | 
            -
                    enter(obj, raw_content | 
| 69 | 
            +
                    enter(obj, raw_content:, attributes:, compiled_content:, path:)
         | 
| 70 70 | 
             
                    exit
         | 
| 71 71 | 
             
                  end
         | 
| 72 72 |  | 
| @@ -48,7 +48,7 @@ module Nanoc | |
| 48 48 | 
             
                  end
         | 
| 49 49 |  | 
| 50 50 | 
             
                  # @see Hash#fetch
         | 
| 51 | 
            -
                  def fetch(key, fallback = Nanoc::Core::UNDEFINED, & | 
| 51 | 
            +
                  def fetch(key, fallback = Nanoc::Core::UNDEFINED, &)
         | 
| 52 52 | 
             
                    @context.dependency_tracker.bounce(_unwrap, attributes: [key])
         | 
| 53 53 |  | 
| 54 54 | 
             
                    if _unwrap.attributes.key?(key)
         | 
    
        data/lib/nanoc/core/feature.rb
    CHANGED
    
    
| @@ -62,8 +62,8 @@ module Nanoc | |
| 62 62 | 
             
                  end
         | 
| 63 63 |  | 
| 64 64 | 
             
                  # contract C::Func[C::RespondTo[:identifier] => C::Any] => self
         | 
| 65 | 
            -
                  def reject(& | 
| 66 | 
            -
                    self.class.new(@config, @objects.reject(& | 
| 65 | 
            +
                  def reject(&)
         | 
| 66 | 
            +
                    self.class.new(@config, @objects.reject(&))
         | 
| 67 67 | 
             
                  end
         | 
| 68 68 |  | 
| 69 69 | 
             
                  def object_with_identifier(identifier)
         | 
| @@ -49,10 +49,10 @@ module Nanoc | |
| 49 49 | 
             
                  # @param [String, Regex] arg
         | 
| 50 50 | 
             
                  #
         | 
| 51 51 | 
             
                  # @return [Enumerable]
         | 
| 52 | 
            -
                  def find_all(arg = NOTHING, & | 
| 52 | 
            +
                  def find_all(arg = NOTHING, &)
         | 
| 53 53 | 
             
                    if NOTHING.equal?(arg)
         | 
| 54 54 | 
             
                      @context.dependency_tracker.bounce(_unwrap, raw_content: true)
         | 
| 55 | 
            -
                      return @objects.map { |i| view_class.new(i, @context) }.select(& | 
| 55 | 
            +
                      return @objects.map { |i| view_class.new(i, @context) }.select(&)
         | 
| 56 56 | 
             
                    end
         | 
| 57 57 |  | 
| 58 58 | 
             
                    prop_attribute =
         | 
    
        data/lib/nanoc/core/item.rb
    CHANGED
    
    
    
        data/lib/nanoc/core/layout.rb
    CHANGED
    
    
| @@ -25,7 +25,7 @@ module Nanoc | |
| 25 25 | 
             
                  #
         | 
| 26 26 | 
             
                  # @return [self]
         | 
| 27 27 | 
             
                  def create(content, attributes, identifier, binary: false, filename: nil)
         | 
| 28 | 
            -
                    content = Nanoc::Core::Content.create(content, binary | 
| 28 | 
            +
                    content = Nanoc::Core::Content.create(content, binary:, filename:)
         | 
| 29 29 | 
             
                    @objects = @objects.add(Nanoc::Core::Item.new(content, attributes, identifier))
         | 
| 30 30 | 
             
                    self
         | 
| 31 31 | 
             
                  end
         | 
| @@ -53,7 +53,7 @@ module Nanoc | |
| 53 53 | 
             
                  end
         | 
| 54 54 |  | 
| 55 55 | 
             
                  def on(name, id = nil, &block)
         | 
| 56 | 
            -
                    @notifications[name] << { id | 
| 56 | 
            +
                    @notifications[name] << { id:, block: }
         | 
| 57 57 | 
             
                  end
         | 
| 58 58 |  | 
| 59 59 | 
             
                  def remove(name, id)
         | 
| @@ -75,8 +75,8 @@ module Nanoc | |
| 75 75 | 
             
                      @_instance ||= new.tap(&:start)
         | 
| 76 76 | 
             
                    end
         | 
| 77 77 |  | 
| 78 | 
            -
                    def on(name, id = nil, & | 
| 79 | 
            -
                      instance.on(name, id, & | 
| 78 | 
            +
                    def on(name, id = nil, &)
         | 
| 79 | 
            +
                      instance.on(name, id, &)
         | 
| 80 80 | 
             
                    end
         | 
| 81 81 |  | 
| 82 82 | 
             
                    def post(name, *args)
         | 
| @@ -8,7 +8,7 @@ module Nanoc | |
| 8 8 |  | 
| 9 9 | 
             
                  contract C::KeywordArgs[config: Nanoc::Core::Configuration] => C::Any
         | 
| 10 10 | 
             
                  def initialize(config:)
         | 
| 11 | 
            -
                    super(Nanoc::Core::Store.tmp_path_for(config | 
| 11 | 
            +
                    super(Nanoc::Core::Store.tmp_path_for(config:, store_name: 'outdatedness'), 2)
         | 
| 12 12 |  | 
| 13 13 | 
             
                    @outdated_refs = Set.new
         | 
| 14 14 | 
             
                  end
         | 
| @@ -3,7 +3,7 @@ | |
| 3 3 | 
             
            module Nanoc
         | 
| 4 4 | 
             
              module Core
         | 
| 5 5 | 
             
                class SiteLoader
         | 
| 6 | 
            -
                  ENCODING_REGEX = /\A#\s+(-\*-\s+)?(en)?coding: (?<encoding>[^\s]+)(\s+-\*-\s*)?\n{0,2} | 
| 6 | 
            +
                  ENCODING_REGEX = /\A#\s+(-\*-\s+)?(en)?coding: (?<encoding>[^\s]+)(\s+-\*-\s*)?\n{0,2}/
         | 
| 7 7 | 
             
                  # @return [Boolean]
         | 
| 8 8 | 
             
                  def self.cwd_is_nanoc_site?
         | 
| 9 9 | 
             
                    Nanoc::Core::ConfigLoader.cwd_is_nanoc_site?
         | 
| @@ -33,13 +33,13 @@ module Nanoc | |
| 33 33 | 
             
                    data_source = gen_data_source_for_config(config)
         | 
| 34 34 |  | 
| 35 35 | 
             
                    Nanoc::Core::Site.new(
         | 
| 36 | 
            -
                      config | 
| 37 | 
            -
                      code_snippets | 
| 38 | 
            -
                      data_source | 
| 36 | 
            +
                      config:,
         | 
| 37 | 
            +
                      code_snippets:,
         | 
| 38 | 
            +
                      data_source:,
         | 
| 39 39 | 
             
                    )
         | 
| 40 40 | 
             
                  end
         | 
| 41 41 |  | 
| 42 | 
            -
                  def with_data_sources(config, & | 
| 42 | 
            +
                  def with_data_sources(config, &)
         | 
| 43 43 | 
             
                    data_sources = create_data_sources(config)
         | 
| 44 44 |  | 
| 45 45 | 
             
                    begin
         | 
| @@ -11,7 +11,7 @@ module Nanoc | |
| 11 11 |  | 
| 12 12 | 
             
                  contract C::KeywordArgs[config: Nanoc::Core::Configuration] => C::Any
         | 
| 13 13 | 
             
                  def initialize(config:)
         | 
| 14 | 
            -
                    super(Nanoc::Core::Store.tmp_path_for(config | 
| 14 | 
            +
                    super(Nanoc::Core::Store.tmp_path_for(config:, store_name: 'compiled_content'), 4)
         | 
| 15 15 |  | 
| 16 16 | 
             
                    @cache = {}
         | 
| 17 17 | 
             
                  end
         | 
    
        data/lib/nanoc/core/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: nanoc-core
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 4. | 
| 4 | 
            +
              version: 4.13.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Denis Defreyne
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2024- | 
| 11 | 
            +
            date: 2024-06-19 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: base64
         | 
| @@ -322,7 +322,7 @@ licenses: | |
| 322 322 | 
             
            - MIT
         | 
| 323 323 | 
             
            metadata:
         | 
| 324 324 | 
             
              rubygems_mfa_required: 'true'
         | 
| 325 | 
            -
              source_code_uri: https://github.com/nanoc/nanoc/tree/nanoc-core-v4. | 
| 325 | 
            +
              source_code_uri: https://github.com/nanoc/nanoc/tree/nanoc-core-v4.13.0/nanoc-core
         | 
| 326 326 | 
             
            post_install_message:
         | 
| 327 327 | 
             
            rdoc_options: []
         | 
| 328 328 | 
             
            require_paths:
         | 
| @@ -331,14 +331,14 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 331 331 | 
             
              requirements:
         | 
| 332 332 | 
             
              - - ">="
         | 
| 333 333 | 
             
                - !ruby/object:Gem::Version
         | 
| 334 | 
            -
                  version: ' | 
| 334 | 
            +
                  version: '3.1'
         | 
| 335 335 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 336 336 | 
             
              requirements:
         | 
| 337 337 | 
             
              - - ">="
         | 
| 338 338 | 
             
                - !ruby/object:Gem::Version
         | 
| 339 339 | 
             
                  version: '0'
         | 
| 340 340 | 
             
            requirements: []
         | 
| 341 | 
            -
            rubygems_version: 3.5. | 
| 341 | 
            +
            rubygems_version: 3.5.11
         | 
| 342 342 | 
             
            signing_key:
         | 
| 343 343 | 
             
            specification_version: 4
         | 
| 344 344 | 
             
            summary: Core of Nanoc
         |