Sha256: 78823fc587d8bb60a6914725f4d505588b286afd9cdf51305c027cc38a4623eb

Contents?: true

Size: 1.66 KB

Versions: 8

Compression:

Stored size: 1.66 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
          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

8 entries across 8 versions & 1 rubygems

Version Path
fast_ci-1.0.7 lib/fast_ci/ruby_critic/cli/application.rb
fast_ci-1.0.6 lib/fast_ci/ruby_critic/cli/application.rb
fast_ci-1.0.5 lib/fast_ci/ruby_critic/cli/application.rb
fast_ci-1.0.4 lib/fast_ci/ruby_critic/cli/application.rb
fast_ci-1.0.3 lib/fast_ci/ruby_critic/cli/application.rb
fast_ci-1.0.2 lib/fast_ci/ruby_critic/cli/application.rb
fast_ci-1.0.1 lib/fast_ci/ruby_critic/cli/application.rb
fast_ci-1.0.0 lib/fast_ci/ruby_critic/cli/application.rb