Sha256: c15c062fe37c3ee67accaea60544853a0af6d7ecdf921adbaad03e3be71e0dcf

Contents?: true

Size: 1.38 KB

Versions: 8

Compression:

Stored size: 1.38 KB

Contents

# frozen_string_literal: true

module Nanoc
  module Int
    # Stores action sequences for objects that can be run through a rule (item
    # representations and layouts).
    #
    # @api private
    class ActionSequenceStore < ::Nanoc::Int::Store
      include Nanoc::Core::ContractsSupport

      contract C::KeywordArgs[config: Nanoc::Core::Configuration] => C::Any
      def initialize(config:)
        super(Nanoc::Int::Store.tmp_path_for(config: config, store_name: 'rule_memory'), 1)

        @action_sequences = {}
      end

      # @param [Nanoc::Core::ItemRep, Nanoc::Core::Layout] obj The item representation or
      #   the layout to get the action sequence for
      #
      # @return [Array] The action sequence for the given object
      def [](obj)
        @action_sequences[obj.reference]
      end

      # @param [Nanoc::Core::ItemRep, Nanoc::Core::Layout] obj The item representation or
      #   the layout to set the action sequence for
      #
      # @param [Array] action_sequence The new action sequence to be stored
      #
      # @return [void]
      def []=(obj, action_sequence)
        @action_sequences[obj.reference] = action_sequence
      end

      protected

      # @see Nanoc::Int::Store#data
      def data
        @action_sequences
      end

      # @see Nanoc::Int::Store#data=
      def data=(new_data)
        @action_sequences = new_data
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
nanoc-4.11.8 lib/nanoc/base/repos/action_sequence_store.rb
nanoc-4.11.7 lib/nanoc/base/repos/action_sequence_store.rb
nanoc-4.11.6 lib/nanoc/base/repos/action_sequence_store.rb
nanoc-4.11.5 lib/nanoc/base/repos/action_sequence_store.rb
nanoc-4.11.4 lib/nanoc/base/repos/action_sequence_store.rb
nanoc-4.11.3 lib/nanoc/base/repos/action_sequence_store.rb
nanoc-4.11.2 lib/nanoc/base/repos/action_sequence_store.rb
nanoc-4.11.1 lib/nanoc/base/repos/action_sequence_store.rb