Sha256: 849d470d31a465912cf22f8199410f20f126b4abcbb424aad2fd633932ee8daf
Contents?: true
Size: 1.23 KB
Versions: 3
Compression:
Stored size: 1.23 KB
Contents
# frozen_string_literal: true require 'json' module Terracop module Formatters # Generates a JSON document listing all the offenses. # Ideal to generate ouputs to be digested by other tools in a CI pipeline. class Json def generate(resources) { metadata: meta, resources: build_resources(resources), summary: { offense_count: resources.values.map(&:count).sum, resource_count: resources.count } }.to_json end private def meta { terracop_version: Terracop::VERSION, ruby_engine: RUBY_ENGINE, ruby_version: RUBY_ENGINE_VERSION, ruby_patchlevel: RUBY_PATCHLEVEL, ruby_platform: RUBY_PLATFORM } end def build_resources(resources) resources.map do |resource, offenses| { resource: resource, offsenses: build_offenses(offenses) } end end def build_offenses(offenses) offenses.map do |offense| { severity: offense[:severity], cop_name: offense[:cop_name], message: offense[:message] } end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
terracop-0.2.0 | lib/terracop/formatters/json.rb |
terracop-0.1.1 | lib/terracop/formatters/json.rb |
terracop-0.1.0 | lib/terracop/formatters/json.rb |