Sha256: 53d3fb28c33ad24e2c99d0aa895d16ad6c66dbe6556e75380b8d383a4e734507

Contents?: true

Size: 1.15 KB

Versions: 15

Compression:

Stored size: 1.15 KB

Contents

# frozen_string_literal: true

module Coverband
  module Adapters
    ###
    # FilesStore store a merged coverage file to local disk
    # Generally this is for testing and development
    # Not recommended for production deployment
    ###
    class FileStore < Base
      def initialize(path, _opts = {})
        super()
        @path = path

        config_dir = File.dirname(@path)
        Dir.mkdir config_dir unless File.exist?(config_dir)
      end

      def clear!
        File.delete(path) if File.exist?(path)
      end

      def size
        File.size?(path).to_i
      end

      def migrate!
        raise NotImplementedError, "FileStore doesn't support migrations"
      end

      def coverage(_local_type = nil)
        if File.exist?(path)
          JSON.parse(File.read(path))
        else
          {}
        end
      end

      def save_report(report)
        data = report.dup
        data = merge_reports(data, coverage)
        File.open(path, 'w') { |f| f.write(data.to_json) }
      end

      def raw_store
        raise NotImplementedError, "FileStore doesn't support raw_store"
      end

      private

      attr_accessor :path
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
coverband-4.2.7 lib/coverband/adapters/file_store.rb
coverband-4.2.7.rc.1 lib/coverband/adapters/file_store.rb
coverband-4.2.6 lib/coverband/adapters/file_store.rb
coverband-4.2.5 lib/coverband/adapters/file_store.rb
coverband-4.2.5.rc.2 lib/coverband/adapters/file_store.rb
coverband-4.2.5.rc.1 lib/coverband/adapters/file_store.rb
coverband-4.2.4 lib/coverband/adapters/file_store.rb
coverband-4.2.4.rc.3 lib/coverband/adapters/file_store.rb
coverband-4.2.4.rc.2 lib/coverband/adapters/file_store.rb
coverband-4.2.4.rc.1 lib/coverband/adapters/file_store.rb
coverband-4.2.3 lib/coverband/adapters/file_store.rb
coverband-4.2.3.rc.2 lib/coverband/adapters/file_store.rb
coverband-4.2.3.rc.1 lib/coverband/adapters/file_store.rb
coverband-4.2.2 lib/coverband/adapters/file_store.rb
coverband-4.2.2.rc.1 lib/coverband/adapters/file_store.rb