Sha256: f9310d343619cc13025166f216c830e0c7eda7772f5f16b3b6255220c1712f8e

Contents?: true

Size: 1.29 KB

Versions: 23

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true

module Nanoc::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::Int::ContractsSupport

    contract C::KeywordArgs[config: Nanoc::Int::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::Int::ItemRep, Nanoc::Int::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::Int::ItemRep, Nanoc::Int::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

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
nanoc-4.11.0 lib/nanoc/base/repos/action_sequence_store.rb
nanoc-4.10.4 lib/nanoc/base/repos/action_sequence_store.rb
nanoc-4.10.3 lib/nanoc/base/repos/action_sequence_store.rb
nanoc-4.10.2 lib/nanoc/base/repos/action_sequence_store.rb
nanoc-4.10.1 lib/nanoc/base/repos/action_sequence_store.rb
nanoc-4.10.0 lib/nanoc/base/repos/action_sequence_store.rb
nanoc-4.9.9 lib/nanoc/base/repos/action_sequence_store.rb
nanoc-4.9.8 lib/nanoc/base/repos/action_sequence_store.rb
nanoc-4.9.7 lib/nanoc/base/repos/action_sequence_store.rb
nanoc-4.9.6 lib/nanoc/base/repos/action_sequence_store.rb
nanoc-4.9.5 lib/nanoc/base/repos/action_sequence_store.rb
nanoc-4.9.4 lib/nanoc/base/repos/action_sequence_store.rb
nanoc-4.9.3 lib/nanoc/base/repos/action_sequence_store.rb
nanoc-4.9.2 lib/nanoc/base/repos/action_sequence_store.rb
nanoc-4.9.1 lib/nanoc/base/repos/action_sequence_store.rb
nanoc-4.9.0 lib/nanoc/base/repos/action_sequence_store.rb
nanoc-4.8.19 lib/nanoc/base/repos/action_sequence_store.rb
nanoc-4.8.18 lib/nanoc/base/repos/action_sequence_store.rb
nanoc-4.8.17 lib/nanoc/base/repos/action_sequence_store.rb
nanoc-4.8.16 lib/nanoc/base/repos/action_sequence_store.rb