Sha256: 8b42e7cffe16c9d4db46b324cf8d3cb967f15ce42795fe58b81df5c0197c0136

Contents?: true

Size: 510 Bytes

Versions: 1

Compression:

Stored size: 510 Bytes

Contents

module Cubism
  class CubicleBlockStore
    include Singleton

    delegate_missing_to :@blocks

    def initialize
      @blocks = {}
    end

    def [](key)
      @blocks[key]
    end

    def []=(key, value)
      mutex.synchronize do
        @blocks[key] = value
      end
    end

    def clear
      mutex.synchronize do
        @blocks.clear
      end
    end

    private

    def mutex
      @mutex ||= Mutex.new
    end
  end

  BlockStoreItem = Struct.new(:context, :block, keyword_init: true)
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cubism-0.1.0.pre9 lib/cubism/cubicle_block_store.rb