Sha256: 4104fae1702ab4989cf7ec54b3aee4a62e9cd7c2f485428903f31ac3319fbfa4

Contents?: true

Size: 829 Bytes

Versions: 7

Compression:

Stored size: 829 Bytes

Contents

# frozen_string_literal: true

module Coverband
  module Adapters
    ###
    # RedisStore store a merged coverage file to redis
    ###
    class RedisStore < Base
      BASE_KEY = 'coverband3_1'

      def initialize(redis, opts = {})
        super()
        @redis           = redis
        @ttl             = opts[:ttl]
        @redis_namespace = opts[:redis_namespace]
      end

      def clear!
        @redis.del(base_key)
      end

      private

      attr_reader :redis

      def base_key
        @base_key ||= [BASE_KEY, @redis_namespace].compact.join('.')
      end

      def save_coverage(data)
        redis.set base_key, data.to_json
        redis.expire(base_key, @ttl) if @ttl
      end

      def get_report
        data = redis.get base_key
        data ? JSON.parse(data) : {}
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
coverband-4.0.1 lib/coverband/adapters/redis_store.rb
coverband-4.0.1.beta lib/coverband/adapters/redis_store.rb
coverband-4.0.1.alpha lib/coverband/adapters/redis_store.rb
coverband-4.0.0 lib/coverband/adapters/redis_store.rb
coverband-4.0.0.alpha lib/coverband/adapters/redis_store.rb
coverband-3.0.1 lib/coverband/adapters/redis_store.rb
coverband-3.0.1.alpha lib/coverband/adapters/redis_store.rb