Class: Expressir::Express::ModelVisitor Abstract

Inherits:
Object
  • Object
show all
Defined in:
lib/expressir/express/model_visitor.rb

Overview

This class is abstract.

Direct Known Subclasses

ResolveReferencesModelVisitor

Instance Method Summary collapse

Instance Method Details

#visit(node) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/expressir/express/model_visitor.rb', line 5

def visit(node)
  node.class.attributes.each_key do |symbol|
    next if ::Expressir::Model::ModelElement::SKIP_ATTRIBUTES.include?(symbol)

    value = node.send(symbol)

    case value
    when Array
      value.each do |val|
        if val.is_a? Model::ModelElement
          visit(val)
        end
      end
    when Model::ModelElement
      visit(value)
    end
  end
end