Sha256: fd0cf4cb1d8526e150bc4ec67d12e6dce2457e179cfe8a913f03bd9e1952efe9

Contents?: true

Size: 768 Bytes

Versions: 3

Compression:

Stored size: 768 Bytes

Contents

module Makitoo
  module FeatureFlag

    class MemoryCache

      def initialize(logger, ttl = 20.seconds)
        @logger = logger
        @cache = {}
        @ttl = ttl
      end

      def get(key)
        if @cache.has_key?(key)
          if @cache[key][:end] > Time.now()
            @logger.debug 'Cache hit'
            @cache[key][:value]
          else
            @logger.debug 'Cache invalid'
            @cache.delete(key)
            nil
          end
        else
          @logger.debug 'Cache miss'
          nil
        end
      end

      def put(key, value)
        @logger.debug 'Cache put'
        @cache[key] = {
          value: value,
          end: Time.now() + @ttl
        }
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
makitoo-feature_flag-0.1.7 lib/makitoo/feature_flag/memory_cache.rb
makitoo-feature_flag-0.1.6 lib/makitoo/feature_flag/memory_cache.rb
makitoo-feature_flag-0.1.5 lib/makitoo/feature_flag/memory_cache.rb