Class: Uniword::Quality::QualityViolation

Inherits:
Object
  • Object
show all
Defined in:
lib/uniword/quality/quality_rule.rb

Overview

Represents a quality violation found in a document

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(rule:, severity:, message:, location:, element: nil) ⇒ QualityViolation

Initialize violation

Parameters:

  • rule (String)

    Rule that found the violation

  • severity (Symbol)

    Violation severity (:error, :warning, :info)

  • message (String)

    Human-readable violation message

  • location (String)

    Location in document

  • element (Element) (defaults to: nil)

    Element causing violation (optional)



95
96
97
98
99
100
101
102
103
# File 'lib/uniword/quality/quality_rule.rb', line 95

def initialize(rule:, severity:, message:, location:, element: nil)
  @rule = rule
  @severity = severity
  @message = message
  @location = location
  @element = element

  validate_severity!
end

Instance Attribute Details

#elementObject (readonly)

Returns the value of attribute element.



86
87
88
# File 'lib/uniword/quality/quality_rule.rb', line 86

def element
  @element
end

#locationObject (readonly)

Returns the value of attribute location.



86
87
88
# File 'lib/uniword/quality/quality_rule.rb', line 86

def location
  @location
end

#messageObject (readonly)

Returns the value of attribute message.



86
87
88
# File 'lib/uniword/quality/quality_rule.rb', line 86

def message
  @message
end

#ruleObject (readonly)

Returns the value of attribute rule.



86
87
88
# File 'lib/uniword/quality/quality_rule.rb', line 86

def rule
  @rule
end

#severityObject (readonly)

Returns the value of attribute severity.



86
87
88
# File 'lib/uniword/quality/quality_rule.rb', line 86

def severity
  @severity
end

Instance Method Details

#error?Boolean

Check if violation is an error

Returns:

  • (Boolean)

    true if severity is :error



108
109
110
# File 'lib/uniword/quality/quality_rule.rb', line 108

def error?
  severity == :error
end

#info?Boolean

Check if violation is info

Returns:

  • (Boolean)

    true if severity is :info



122
123
124
# File 'lib/uniword/quality/quality_rule.rb', line 122

def info?
  severity == :info
end

#to_hHash

Convert violation to hash

Returns:

  • (Hash)

    Violation as hash



129
130
131
132
133
134
135
136
# File 'lib/uniword/quality/quality_rule.rb', line 129

def to_h
  {
    rule: rule,
    severity: severity,
    message: message,
    location: location,
  }
end

#warning?Boolean

Check if violation is a warning

Returns:

  • (Boolean)

    true if severity is :warning



115
116
117
# File 'lib/uniword/quality/quality_rule.rb', line 115

def warning?
  severity == :warning
end