Sha256: 9f51c128d9948631a411d5e4d52b8c532c61d2cc43413d67a4d33cedff26e864
Contents?: true
Size: 1.31 KB
Versions: 3
Compression:
Stored size: 1.31 KB
Contents
# frozen_string_literal: true module Coverband module Adapters ### # RedisStore store a merged coverage file to redis ### class RedisStore < Base BASE_KEY = 'coverband3' def initialize(redis, opts = {}) @redis = redis @ttl = opts[:ttl] @redis_namespace = opts[:redis_namespace] end def clear! @redis.del(base_key) end def save_report(report) # Note: This could lead to slight races # where multiple processes pull the old coverage and add to it then push # the Coverband 2 had the same issue, # and the tradeoff has always been acceptable merge_reports(report, coverage) save_coverage(base_key, report) end def coverage get_report(base_key) end def covered_files coverage.keys end def covered_lines_for_file(file) coverage[file] end private attr_reader :redis def base_key @base_key ||= [BASE_KEY, @redis_namespace].compact.join('.') end def save_coverage(key, data) redis.set key, data.to_json redis.expire(key, @ttl) if @ttl end def get_report(key) data = redis.get key data ? JSON.parse(data) : {} end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
coverband-3.0.0 | lib/coverband/adapters/redis_store.rb |
coverband-3.0.0.alpha2 | lib/coverband/adapters/redis_store.rb |
coverband-3.0.0.alpha | lib/coverband/adapters/redis_store.rb |