Class: RubyModKit::Node::DefParentNode

Inherits:
BaseNode
  • Object
show all
Defined in:
lib/ruby_mod_kit/node/def_parent_node.rb

Overview

Transpiler program node

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from BaseNode

#ancestors, #children, #def_node_at, #def_parent_node_at, #end_offset, #include?, #inspect, #location, #name, #node_at, #offset, #parameter_node_at, #slice, #statements_node_at

Constructor Details

#initialize(prism_node, parent:, prev: nil) ⇒ void

Parameters:

  • (defaults to: nil)

Raises:

rbs:

  • prism_node: Prism::ClassNode | Prism::ModuleNode

  • parent: Node::BaseNode

  • prev: Node::BaseNode | nil

  • return: void



26
27
28
29
30
31
32
33
# File 'lib/ruby_mod_kit/node/def_parent_node.rb', line 26

def initialize(prism_node, parent:, prev: nil)
  @prism_node = prism_node
  @parent = parent
  @prev = prev
  raise RubyModKit::Error if !prism_node.is_a?(Prism::ClassNode) && !prism_node.is_a?(Prism::ModuleNode)

  super()
end

Instance Attribute Details

#parentObject (readonly)

: Node::BaseNode



15
16
17
# File 'lib/ruby_mod_kit/node/def_parent_node.rb', line 15

def parent
  @parent
end

#prevObject (readonly)

: Node::BaseNode | nil



16
17
18
# File 'lib/ruby_mod_kit/node/def_parent_node.rb', line 16

def prev
  @prev
end

Instance Method Details

#body_nodeNode::StatementsNode?

Returns:

rbs:

  • return: Node::StatementsNode | nil



49
50
51
52
53
# File 'lib/ruby_mod_kit/node/def_parent_node.rb', line 49

def body_node
  # body_node will be set in #children
  children
  @body_node
end

#wrap(prism_child_node, prev: nil) ⇒ Node::BaseNode

Parameters:

  • (defaults to: nil)

Returns:

rbs:

  • prism_child_node: Prism::Node

  • prev: Node::BaseNode | nil

  • return: Node::BaseNode



41
42
43
44
45
# File 'lib/ruby_mod_kit/node/def_parent_node.rb', line 41

def wrap(prism_child_node, prev: nil)
  child_node = super
  @body_node = child_node if prism_child_node == @prism_node.body && child_node.is_a?(Node::StatementsNode)
  child_node
end