Sha256: 895c65fdc05acaf4299b237f444026a9bf569b14b24000db9745e04f11753866

Contents?: true

Size: 473 Bytes

Versions: 13

Compression:

Stored size: 473 Bytes

Contents

# frozen_string_literal: true

module Logster
  class Cache
    def initialize(age = 2)
      @age = age
      @hash = {}
    end

    def fetch(key)
      if !@hash.key?(key) ||
           @hash[key][:created_at] + @age < Process.clock_gettime(Process::CLOCK_MONOTONIC)
        @hash[key] = { data: yield, created_at: Process.clock_gettime(Process::CLOCK_MONOTONIC) }
      end
      @hash[key][:data]
    end

    def clear(key)
      @hash.delete(key)
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
logster-2.20.1 lib/logster/cache.rb
logster-2.20.0 lib/logster/cache.rb
logster-2.19.1 lib/logster/cache.rb
logster-2.19.0 lib/logster/cache.rb
logster-2.18.1 lib/logster/cache.rb
logster-2.18.0 lib/logster/cache.rb
logster-2.17.1 lib/logster/cache.rb
logster-2.17.0 lib/logster/cache.rb
logster-2.16.0 lib/logster/cache.rb
logster-2.15.0 lib/logster/cache.rb
logster-2.14.0 lib/logster/cache.rb
logster-2.13.1 lib/logster/cache.rb
logster-2.13.0 lib/logster/cache.rb