Sha256: 644864307b55f4ba500414023b54c0f7b1725c5ec3a7dbab5f16daaff56527b0

Contents?: true

Size: 1.66 KB

Versions: 9

Compression:

Stored size: 1.66 KB

Contents

# frozen_string_literal: true

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

module RubyCI
  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['RBCI_REMOTE_TESTS'] == 'true'
            json_events = {
              build_id: RubyCI.configuration.orig_build_id,
              compressed_data: Base64.strict_encode64(Zlib::Deflate.deflate(JSON.fast_generate(events), 9)),
            }
      
            RubyCI.send_events(json_events)
          else
            RubyCI.report_ruby_critic(compressed_data, 'passed')
          end
          return status
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
ruby_ci-0.2.26 lib/ruby_ci/ruby_critic/cli/application.rb
ruby_ci-0.2.25 lib/ruby_ci/ruby_critic/cli/application.rb
ruby_ci-0.2.24 lib/ruby_ci/ruby_critic/cli/application.rb
ruby_ci-0.2.23 lib/ruby_ci/ruby_critic/cli/application.rb
ruby_ci-0.2.22 lib/ruby_ci/ruby_critic/cli/application.rb
ruby_ci-0.2.21 lib/ruby_ci/ruby_critic/cli/application.rb
ruby_ci-0.2.20 lib/ruby_ci/ruby_critic/cli/application.rb
ruby_ci-0.2.19 lib/ruby_ci/ruby_critic/cli/application.rb
ruby_ci-0.2.18 lib/ruby_ci/ruby_critic/cli/application.rb