class CC::Analyzer::IssueValidations::LocationFormatValidation::Validator
Attributes
error[RW]
location[R]
Public Class Methods
new(location)
click to toggle source
# File lib/cc/analyzer/issue_validations/location_format_validation.rb, line 6 def initialize(location) @location = location check_validity end
Public Instance Methods
message()
click to toggle source
# File lib/cc/analyzer/issue_validations/location_format_validation.rb, line 15 def message if error "Location is not formatted correctly: #{error}" end end
valid?()
click to toggle source
# File lib/cc/analyzer/issue_validations/location_format_validation.rb, line 11 def valid? error.nil? end
Private Instance Methods
check_validity()
click to toggle source
# File lib/cc/analyzer/issue_validations/location_format_validation.rb, line 27 def check_validity if location["lines"] self.error = "location.lines is not valid: #{JSON.dump(location["lines"])}" unless valid_lines?(location["lines"]) elsif location["positions"] self.error = "location.positions is not valid: #{JSON.dump(location["positions"])}" unless valid_positions?(location["positions"]) else self.error = "location.lines or location.positions must be present" end end
valid_lines?(lines)
click to toggle source
# File lib/cc/analyzer/issue_validations/location_format_validation.rb, line 51 def valid_lines?(lines) lines.is_a?(Hash) && [lines["begin"], lines["end"]].all? { |value| value.is_a?(Integer) } end
valid_position?(position)
click to toggle source
# File lib/cc/analyzer/issue_validations/location_format_validation.rb, line 43 def valid_position?(position) position && ( [position["line"], position["column"]].all? { |value| value.is_a?(Integer) } || position["offset"].is_a?(Integer) ) end
valid_positions?(positions)
click to toggle source
# File lib/cc/analyzer/issue_validations/location_format_validation.rb, line 37 def valid_positions?(positions) positions.is_a?(Hash) && valid_position?(positions["begin"]) && valid_position?(positions["end"]) end