Sha256: aac54ed85ed62ed00e68e1266bc1400b40c30ddc141c8e7cce185b99d98d6802

Contents?: true

Size: 1.19 KB

Versions: 46

Compression:

Stored size: 1.19 KB

Contents

class Card
  class Cache
    # The {Temporary} cache is intended for a single request, script,
    # migration, etc. It allows you to alter a card and then retrieve
    # the card with those alterations intact _without_ saving those
    # changes to the database.
    #
    # In practice, it's a set of Cache-like methods for using a
    # simple Hash.
    #
    # Unlike the Persistent cache, the Temporary cache can handle objects with
    # singleton classes.
    class Temporary
      attr_reader :store

      def initialize
        @store = {}
      end

      # @param key [String]
      def read key
        return unless @store.key? key
        @store[key]
      end

      # @param key [String]
      def write key, value
        @store[key] = value
      end

      # @param key [String]
      def fetch key, &_block
        read(key) || write(key, yield)
      end

      # @param key [String]
      def delete key
        @store.delete key
      end

      def dump
        @store.each do |k, v|
          p "#{k} --> #{v.inspect[0..30]}"
        end
      end

      def reset
        @store = {}
      end

      # @param key [String]
      def exist? key
        @store.key? key
      end
    end
  end
end

Version data entries

46 entries across 46 versions & 1 rubygems

Version Path
card-1.96.8 lib/card/cache/temporary.rb
card-1.96.7 lib/card/cache/temporary.rb
card-1.96.6 lib/card/cache/temporary.rb
card-1.96.5 lib/card/cache/temporary.rb
card-1.96.4 lib/card/cache/temporary.rb
card-1.96.3 lib/card/cache/temporary.rb
card-1.96.2 lib/card/cache/temporary.rb
card-1.96.1 lib/card/cache/temporary.rb
card-1.96.0 lib/card/cache/temporary.rb
card-1.95.3 lib/card/cache/temporary.rb
card-1.95.2 lib/card/cache/temporary.rb
card-1.95.1 lib/card/cache/temporary.rb
card-1.95.0 lib/card/cache/temporary.rb
card-1.94.1 lib/card/cache/temporary.rb
card-1.94.0 lib/card/cache/temporary.rb
card-1.93.13 lib/card/cache/temporary.rb
card-1.93.12 lib/card/cache/temporary.rb
card-1.93.11 lib/card/cache/temporary.rb
card-1.93.10 lib/card/cache/temporary.rb
card-1.93.9 lib/card/cache/temporary.rb