Sha256: 6b1ad218a14d408b9c6787844b35a58d3dcedd4432b679952a63469b28af3c33

Contents?: true

Size: 953 Bytes

Versions: 11

Compression:

Stored size: 953 Bytes

Contents

module Goodcheck
  class Issue
    attr_reader :buffer
    attr_reader :range
    attr_reader :rule
    attr_reader :text

    def initialize(buffer:, range:, rule:, text:)
      @buffer = buffer
      @range = range
      @rule = rule
      @text = text
    end

    def path
      buffer.path
    end

    def location
      if range
        unless @location
          start_line, start_column = buffer.location_for_position(range.begin)
          end_line, end_column = buffer.location_for_position(range.end)
          @location = Location.new(start_line: start_line, start_column: start_column, end_line: end_line, end_column: end_column)
        end

        @location
      end
    end

    def ==(other)
      other.is_a?(Issue) &&
        other.buffer == buffer &&
        other.range == range &&
        other.rule == rule
    end

    alias eql? ==

    def hash
      self.class.hash ^ buffer.hash ^ range.hash ^ rule.hash
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
goodcheck-2.4.3 lib/goodcheck/issue.rb
goodcheck-2.4.2 lib/goodcheck/issue.rb
goodcheck-2.4.1 lib/goodcheck/issue.rb
goodcheck-2.4.0 lib/goodcheck/issue.rb
goodcheck-2.3.2 lib/goodcheck/issue.rb
goodcheck-2.3.1 lib/goodcheck/issue.rb
goodcheck-2.3.0 lib/goodcheck/issue.rb
goodcheck-2.2.0 lib/goodcheck/issue.rb
goodcheck-2.1.2 lib/goodcheck/issue.rb
goodcheck-2.1.1 lib/goodcheck/issue.rb
goodcheck-2.1.0 lib/goodcheck/issue.rb