Sha256: 1e5a5461202e9a45d60dd3fc167f16f255f4b8e0e61de526f6ee780b6dac26cd

Contents?: true

Size: 701 Bytes

Versions: 14

Compression:

Stored size: 701 Bytes

Contents

module Vedeu

  # Name/Value storage.
  #
  #   name: [value]
  class AssociativeStore

    include Vedeu::Store

    # @param storage [Hash]
    # @return [Vedeu::AssociativeStore]
    def initialize(storage = {})
      @storage = storage
    end

    # @param name [String]
    def load(name)
      return nil if empty?

      storage[name]
    end

    # @param data [Object]
    # @param name [String|Symbol]
    def save(data, name = nil)
      if name
        storage[name] = data

      elsif data.respond_to?(:name)
        storage[data.name] = data

      end

      storage
    end

    private

    # @return [Hash]
    def in_memory
      {}
    end

  end # AssociativeStore

end # Vedeu

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
vedeu-0.4.32 lib/vedeu/storage/associative_store.rb
vedeu-0.4.31 lib/vedeu/storage/associative_store.rb
vedeu-0.4.30 lib/vedeu/storage/associative_store.rb
vedeu-0.4.29 lib/vedeu/storage/associative_store.rb
vedeu-0.4.28 lib/vedeu/storage/associative_store.rb
vedeu-0.4.27 lib/vedeu/storage/associative_store.rb
vedeu-0.4.26 lib/vedeu/storage/associative_store.rb
vedeu-0.4.25 lib/vedeu/storage/associative_store.rb
vedeu-0.4.24 lib/vedeu/storage/associative_store.rb
vedeu-0.4.23 lib/vedeu/storage/associative_store.rb
vedeu-0.4.22 lib/vedeu/storage/associative_store.rb
vedeu-0.4.21 lib/vedeu/storage/associative_store.rb
vedeu-0.4.20 lib/vedeu/storage/associative_store.rb
vedeu-0.4.19 lib/vedeu/storage/associative_store.rb