Class: Suma::LinkValidator::Step::Entity

Inherits:
Object
  • Object
show all
Includes:
Failure
Defined in:
lib/suma/link_validator/step.rb

Overview

Navigates one path segment from an Entity by attribute name.

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Failure

#failure

Class Method Details

.handles?(node) ⇒ Boolean

Returns:

  • (Boolean)


37
38
39
# File 'lib/suma/link_validator/step.rb', line 37

def self.handles?(node)
  node.is_a?(Expressir::Model::Declarations::Entity)
end

Instance Method Details



41
42
43
44
45
46
47
48
49
# File 'lib/suma/link_validator/step.rb', line 41

def navigate(node, part, context)
  attribute = node.attributes&.find { |a| a.id.downcase == part.downcase }
  unless attribute
    return failure("Attribute '#{part}' not found in entity '#{context.path}'",
                   context)
  end

  attribute
end