Sha256: b7437c2642d935cdb8ff9471a08ea1c96bf2b8401fcdf14aed247523e9b89d53

Contents?: true

Size: 972 Bytes

Versions: 47

Compression:

Stored size: 972 Bytes

Contents

# frozen_string_literal: true

require 'json'

module GitlabQuality
  module TestTooling
    module TestMetrics
      class JsonTestMetricCollection
        include Enumerable

        attr_reader :path, :metrics

        def initialize(path)
          @path = path
          @metrics = process
        end

        def metric_for_test_id(test_id)
          metrics.find do |metric|
            metric.fields['id'] == test_id
          end
        end

        def write
          File.write(path, JSON.pretty_generate(metrics))
        end

        private

        def parse
          JSON.parse(File.read(path))
        rescue JSON::ParserError
          Runtime::Logger.debug("#{self.class.name}##{__method__} attempted to parse invalid JSON at path: #{path}")
          {}
        end

        def process
          parse.map do |test|
            GitlabQuality::TestTooling::TestMetric::JsonTestMetric.new(test)
          end
        end
      end
    end
  end
end

Version data entries

47 entries across 47 versions & 1 rubygems

Version Path
gitlab_quality-test_tooling-1.30.0 lib/gitlab_quality/test_tooling/test_metrics/json_test_metric_collection.rb
gitlab_quality-test_tooling-1.29.1 lib/gitlab_quality/test_tooling/test_metrics/json_test_metric_collection.rb
gitlab_quality-test_tooling-1.29.0 lib/gitlab_quality/test_tooling/test_metrics/json_test_metric_collection.rb
gitlab_quality-test_tooling-1.28.0 lib/gitlab_quality/test_tooling/test_metrics/json_test_metric_collection.rb
gitlab_quality-test_tooling-1.24.0 lib/gitlab_quality/test_tooling/test_metrics/json_test_metric_collection.rb
gitlab_quality-test_tooling-1.23.0 lib/gitlab_quality/test_tooling/test_metrics/json_test_metric_collection.rb
gitlab_quality-test_tooling-1.22.0 lib/gitlab_quality/test_tooling/test_metrics/json_test_metric_collection.rb
gitlab_quality-test_tooling-1.21.1 lib/gitlab_quality/test_tooling/test_metrics/json_test_metric_collection.rb
gitlab_quality-test_tooling-1.21.0 lib/gitlab_quality/test_tooling/test_metrics/json_test_metric_collection.rb
gitlab_quality-test_tooling-1.20.1 lib/gitlab_quality/test_tooling/test_metrics/json_test_metric_collection.rb
gitlab_quality-test_tooling-1.20.0 lib/gitlab_quality/test_tooling/test_metrics/json_test_metric_collection.rb
gitlab_quality-test_tooling-1.19.1 lib/gitlab_quality/test_tooling/test_metrics/json_test_metric_collection.rb
gitlab_quality-test_tooling-1.19.0 lib/gitlab_quality/test_tooling/test_metrics/json_test_metric_collection.rb
gitlab_quality-test_tooling-1.18.0 lib/gitlab_quality/test_tooling/test_metrics/json_test_metric_collection.rb
gitlab_quality-test_tooling-1.17.0 lib/gitlab_quality/test_tooling/test_metrics/json_test_metric_collection.rb
gitlab_quality-test_tooling-1.15.0 lib/gitlab_quality/test_tooling/test_metrics/json_test_metric_collection.rb
gitlab_quality-test_tooling-1.14.2 lib/gitlab_quality/test_tooling/test_metrics/json_test_metric_collection.rb
gitlab_quality-test_tooling-1.14.1 lib/gitlab_quality/test_tooling/test_metrics/json_test_metric_collection.rb
gitlab_quality-test_tooling-1.14.0 lib/gitlab_quality/test_tooling/test_metrics/json_test_metric_collection.rb
gitlab_quality-test_tooling-1.13.0 lib/gitlab_quality/test_tooling/test_metrics/json_test_metric_collection.rb