Class: Glossarist::ValidationResult

Inherits:
Object
  • Object
show all
Defined in:
lib/glossarist/validation_result.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(errors: [], warnings: [], issues: []) ⇒ ValidationResult

Returns a new instance of ValidationResult.



7
8
9
10
11
12
# File 'lib/glossarist/validation_result.rb', line 7

def initialize(errors: [], warnings: [], issues: [])
  @issues = []
  errors.each { |e| add_error(e) }
  warnings.each { |w| add_warning(w) }
  issues.each { |i| add_issue(i) }
end

Instance Attribute Details

#issuesObject (readonly)

Returns the value of attribute issues.



5
6
7
# File 'lib/glossarist/validation_result.rb', line 5

def issues
  @issues
end

Instance Method Details

#add_error(message) ⇒ Object



26
27
28
29
30
# File 'lib/glossarist/validation_result.rb', line 26

def add_error(message)
  @issues << Validation::ValidationIssue.new(
    severity: "error", message: message,
  )
end

#add_issue(issue) ⇒ Object



38
39
40
# File 'lib/glossarist/validation_result.rb', line 38

def add_issue(issue)
  @issues << issue
end

#add_warning(message) ⇒ Object



32
33
34
35
36
# File 'lib/glossarist/validation_result.rb', line 32

def add_warning(message)
  @issues << Validation::ValidationIssue.new(
    severity: "warning", message: message,
  )
end

#errorsObject



18
19
20
# File 'lib/glossarist/validation_result.rb', line 18

def errors
  @issues.select(&:error?).map(&:message)
end

#merge(other) ⇒ Object



42
43
44
45
# File 'lib/glossarist/validation_result.rb', line 42

def merge(other)
  other.issues.each { |i| @issues << i }
  self
end

#to_hObject



47
48
49
50
51
52
53
# File 'lib/glossarist/validation_result.rb', line 47

def to_h
  {
    "valid" => valid?,
    "errors" => errors,
    "warnings" => warnings,
  }
end

#valid?Boolean

Returns:

  • (Boolean)


14
15
16
# File 'lib/glossarist/validation_result.rb', line 14

def valid?
  @issues.none?(&:error?)
end

#warningsObject



22
23
24
# File 'lib/glossarist/validation_result.rb', line 22

def warnings
  @issues.select(&:warning?).map(&:message)
end