Sha256: 683920a3da985aaed1d5576a932272798509f8847ba029a804388f2fe1472653

Contents?: true

Size: 1.7 KB

Versions: 6

Compression:

Stored size: 1.7 KB

Contents

# frozen_string_literal: true

require 'rubycritic/cli/application'
require 'fast_ci'
require 'base64'
require 'zlib'

module FastCI
  module RubyCritic
    module Cli
      class Application < ::RubyCritic::Cli::Application
        def execute
          FastCI.start_report('ruby_critic')

          events = []
          events << ['ruby_critic_run'.upcase, {}]
          status = super

          content = File.read('tmp/rubycritic/report.json')
          report = JSON.load(content)
          modules = report['analysed_modules']
          report['analysed_modules'] = {}
          modules.each do |mod|
            report['analysed_modules'][ mod['path'] ] = mod
            mod['smells'].each do |smell|
              location = smell['locations'].first
              start_line = location['line'] - 1
              end_line = start_line + 3
              lines = File.readlines(location['path'])[start_line..end_line]
              location['src'] = lines.join
              smell['locations'][0] = location
            end
          end

          compressed_data = ::Base64.strict_encode64(Zlib::Deflate.deflate(report.to_json, 9))
          events << ['ruby_critic_exit_status'.upcase, ['0', { exitstatus: status, output: '', compressed_data: compressed_data }]]

          if ENV['FSCI_REMOTE_TESTS'] == 'true'
            json_events = {
              build_id: FastCI.configuration.orig_build_id,
              compressed_data: Base64.strict_encode64(Zlib::Deflate.deflate(JSON.fast_generate(events), 9)),
            }
      
            FastCI.send_events(json_events)
          else
            FastCI.report_ruby_critic(compressed_data, 'passed')
          end
          return status
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
fast_ci-1.1.1 lib/fast_ci/ruby_critic/cli/application.rb
fast_ci-1.1.0 lib/fast_ci/ruby_critic/cli/application.rb
fast_ci-1.0.11 lib/fast_ci/ruby_critic/cli/application.rb
fast_ci-1.0.10 lib/fast_ci/ruby_critic/cli/application.rb
fast_ci-1.0.9 lib/fast_ci/ruby_critic/cli/application.rb
fast_ci-1.0.8 lib/fast_ci/ruby_critic/cli/application.rb