instance method
Prism::DotVisitor#visit_class_node
visit_class_node(node)
lib/prism/dot_visitor.rb
View on GitHub ↗
# File tmp/rubies/ruby-4.0.0/lib/prism/dot_visitor.rb, line 988
def visit_class_node(node)
table = Table.new("ClassNode")
id = node_id(node)
# locals
table.field("locals", node.locals.inspect)
# class_keyword_loc
table.field("class_keyword_loc", location_inspect(node.class_keyword_loc))
# constant_path
table.field("constant_path", port: true)
digraph.edge("#{id}:constant_path -> #{node_id(node.constant_path)};")
# inheritance_operator_loc
unless (inheritance_operator_loc = node.inheritance_operator_loc).nil?
table.field("inheritance_operator_loc", location_inspect(inheritance_operator_loc))
end
# superclass
unless (superclass = node.superclass).nil?
table.field("superclass", port: true)
digraph.edge("#{id}:superclass -> #{node_id(superclass)};")
end
# body
unless (body = node.body).nil?
table.field("body", port: true)
digraph.edge("#{id}:body -> #{node_id(body)};")
end
# end_keyword_loc
table.field("end_keyword_loc", location_inspect(node.end_keyword_loc))
# name
table.field("name", node.name.inspect)
digraph.nodes << <<~DOT
#{id} [
label=<#{table.to_dot.gsub(/\n/, "\n ")}>
];
DOT
super
end
Visit a ClassNode node.