Sha256: 0b3a6c4ddc4cefd3c7dafe137911dea984def0b107766d785445afd931084ac3

Contents?: true

Size: 711 Bytes

Versions: 2

Compression:

Stored size: 711 Bytes

Contents

# encoding: utf-8

require 'open3'

module Rubocop
  module Cop
    class Syntax < Cop
      def inspect(file, source, tokens, sexp)
        _, stderr, _ =
          Open3.capture3('ruby -wc', stdin_data: source.join("\n"))

        stderr.each_line do |line|
          line_no, severity, message = process_line(line)
          add_offence(severity, line_no, message)
        end
      end

      def process_line(line)
        line_no, message = line.match(/.+:(\d+): (.+)/).captures
        if message.start_with?('warning: ')
          [line_no.to_i, :warning, message.sub(/warning: /, '').capitalize]
        else
          [line_no.to_i, :error, message.capitalize]
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rubocop-0.4.4 lib/rubocop/cop/syntax.rb
rubocop-0.4.3 lib/rubocop/cop/syntax.rb