Sha256: a38c2958a1c1933d4013da069843517c534d145df0625be054f76e9e27daecc2

Contents?: true

Size: 863 Bytes

Versions: 153

Compression:

Stored size: 863 Bytes

Contents

require "pstore"

module Danger
  class HTTPCache
    attr_reader :expires_in
    def initialize(cache_file = nil, options = {})
      File.delete(cache_file) if options[:clear_cache]
      @store = PStore.new(cache_file)
      @expires_in = options[:expires_in] || 300 # 5 minutes
    end

    def read(key)
      @store.transaction do
        entry = @store[key]
        return nil unless entry
        return entry[:value] unless entry_has_expired(entry, @expires_in)
        @store.delete key
        return nil
      end
    end

    def delete(key)
      @store.transaction { @store.delete key }
    end

    def write(key, value)
      @store.transaction do
        @store[key] = { updated_at: Time.now.to_i, value: value }
      end
    end

    def entry_has_expired(entry, ttl)
      Time.now.to_i > entry[:updated_at].to_i + ttl.to_i
    end
  end
end

Version data entries

153 entries across 153 versions & 1 rubygems

Version Path
danger-9.1.0 lib/danger/commands/local_helpers/http_cache.rb
danger-9.0.0 lib/danger/commands/local_helpers/http_cache.rb
danger-8.6.1 lib/danger/commands/local_helpers/http_cache.rb
danger-8.6.0 lib/danger/commands/local_helpers/http_cache.rb
danger-8.5.0 lib/danger/commands/local_helpers/http_cache.rb
danger-8.4.5 lib/danger/commands/local_helpers/http_cache.rb
danger-8.4.4 lib/danger/commands/local_helpers/http_cache.rb
danger-8.4.3 lib/danger/commands/local_helpers/http_cache.rb
danger-8.4.2 lib/danger/commands/local_helpers/http_cache.rb
danger-8.4.1 lib/danger/commands/local_helpers/http_cache.rb
danger-8.4.0 lib/danger/commands/local_helpers/http_cache.rb
danger-8.3.1 lib/danger/commands/local_helpers/http_cache.rb
danger-8.2.3 lib/danger/commands/local_helpers/http_cache.rb
danger-8.2.2 lib/danger/commands/local_helpers/http_cache.rb
danger-8.2.1 lib/danger/commands/local_helpers/http_cache.rb
danger-8.2.0 lib/danger/commands/local_helpers/http_cache.rb
danger-8.1.0 lib/danger/commands/local_helpers/http_cache.rb
danger-8.0.6 lib/danger/commands/local_helpers/http_cache.rb
danger-8.0.5 lib/danger/commands/local_helpers/http_cache.rb
danger-8.0.4 lib/danger/commands/local_helpers/http_cache.rb