Sha256: d7837afa47649f038804908ca9ecef1d147f875db846cba26067a6ce4a2c19b6

Contents?: true

Size: 1.51 KB

Versions: 14

Compression:

Stored size: 1.51 KB

Contents

# ********** Copyright Viacom, Inc. Apache 2.0 **********

module RokuBuilder

  class LineInspector
    def initialize(config:, raf:, inspector_config:)
      @config = config
      @raf_inspector = raf
      @inspector_config = inspector_config
    end

    def run(file_path)
      @warnings = []
      File.open(file_path) do |file|
        line_number = 0
        in_xml_comment = false
        file.readlines.each do |line|
          full_line = line.dup
          line = line.partition("'").first if file_path.end_with?(".brs")
          if file_path.end_with?(".xml")
            if in_xml_comment
              if line.gsub!(/.*-->/, "")
                in_xml_comment = false
              else
                line = ""
              end
            end
            line.gsub!(/<!--.*-->/, "")
            in_xml_comment = true if line.gsub!(/<!--.*/, "")
          end
          @inspector_config.each do |line_inspector|
            if /#{line_inspector[:regex]}/i.match(line)
              unless /'.*ignore-warning/i.match(full_line)
                add_warning(inspector: line_inspector, file: file_path, line: line_number)
              end
            end
          end
          @raf_inspector.inspect_line(line: line, file: file_path, line_number: line_number)
          line_number += 1
        end
      end
      @warnings
    end

    private

    def add_warning(inspector:,  file:, line:)
      @warnings.push(inspector.deep_dup)
      @warnings.last[:path] = file
      @warnings.last[:line] = line
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
roku_builder-4.11.5 lib/roku_builder/plugins/line_inspector.rb
roku_builder-4.11.4 lib/roku_builder/plugins/line_inspector.rb
roku_builder-4.11.3 lib/roku_builder/plugins/line_inspector.rb
roku_builder-4.11.2 lib/roku_builder/plugins/line_inspector.rb
roku_builder-4.11.1 lib/roku_builder/plugins/line_inspector.rb
roku_builder-4.11.0 lib/roku_builder/plugins/line_inspector.rb
roku_builder-4.10.1 lib/roku_builder/plugins/line_inspector.rb
roku_builder-4.10.0 lib/roku_builder/plugins/line_inspector.rb
roku_builder-4.9.5 lib/roku_builder/plugins/line_inspector.rb
roku_builder-4.9.4 lib/roku_builder/plugins/line_inspector.rb
roku_builder-4.9.3 lib/roku_builder/plugins/line_inspector.rb
roku_builder-4.9.2 lib/roku_builder/plugins/line_inspector.rb
roku_builder-4.9.1 lib/roku_builder/plugins/line_inspector.rb
roku_builder-4.9.0 lib/roku_builder/plugins/line_inspector.rb