Class: Stoplight::Domain::CompatibilityResult

Inherits:
Object
  • Object
show all
Defined in:
lib/stoplight/domain/compatibility_result.rb

Overview

The CompatibilityResult class represents the result of a compatibility check for a strategy. It provides methods to determine if the strategy is compatible and to retrieve error messages when it is not.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(errors: []) ⇒ CompatibilityResult

Initializes a new CompatibilityResult instance.



28
29
30
# File 'lib/stoplight/domain/compatibility_result.rb', line 28

def initialize(errors: [])
  @errors = errors.freeze
end

Instance Attribute Details

#errorsObject (readonly)

Retrieves the list of error messages.



43
44
45
# File 'lib/stoplight/domain/compatibility_result.rb', line 43

def errors
  @errors
end

Class Method Details

.compatibleObject

Creates a new CompatibilityResult instance representing a compatible strategy.



13
14
15
# File 'lib/stoplight/domain/compatibility_result.rb', line 13

def compatible
  new(errors: [])
end

.incompatible(*errors) ⇒ Object

Creates a new CompatibilityResult instance representing an incompatible strategy.



21
22
23
# File 'lib/stoplight/domain/compatibility_result.rb', line 21

def incompatible(*errors)
  new(errors:)
end

Instance Method Details

#compatible?Boolean

Checks if the strategy is compatible.



34
35
36
# File 'lib/stoplight/domain/compatibility_result.rb', line 34

def compatible?
  @errors.empty?
end

#error_messagesObject

Retrieves a concatenated error message string.



48
49
50
51
52
# File 'lib/stoplight/domain/compatibility_result.rb', line 48

def error_messages
  unless compatible?
    @errors.join("; ")
  end
end

#incompatible?Boolean



38
# File 'lib/stoplight/domain/compatibility_result.rb', line 38

def incompatible? = !compatible?