Module: Kettle::Dev::PrismUtils

Defined in:
sig/kettle/dev/prism_utils.rbs

Overview

Shared utilities for working with Prism AST nodes

Constant Summary collapse

Prism =

Class Method Summary collapse

Class Method Details

.block_call_to?Boolean

Check if a node is a block call to a specific method



52
# File 'sig/kettle/dev/prism_utils.rbs', line 52

def self.block_call_to?: (Prism::Node node, Symbol method_name) -> bool

.call_to?Boolean

Check if a node is a specific method call



49
# File 'sig/kettle/dev/prism_utils.rbs', line 49

def self.call_to?: (Prism::Node node, Symbol method_name) -> bool

.extract_const_nameString?

Extract qualified constant name from a constant node



23
# File 'sig/kettle/dev/prism_utils.rbs', line 23

def self.extract_const_name: (Prism::Node? node) -> String?

.extract_literal_valueString, ...

Extract literal value from string or symbol nodes



20
# File 'sig/kettle/dev/prism_utils.rbs', line 20

def self.extract_literal_value: (Prism::Node? node) -> (String | Symbol)?

.extract_statementsArray[Prism::Node]

Extract statements from a Prism body node



11
# File 'sig/kettle/dev/prism_utils.rbs', line 11

def self.extract_statements: (Prism::Node? body_node) -> Array[Prism::Node]

.find_leading_commentsObject

Find leading comments for a statement node



26
# File 'sig/kettle/dev/prism_utils.rbs', line 26

def self.find_leading_comments: (

.inline_comments_for_nodeObject

Find inline comments for a statement node



34
# File 'sig/kettle/dev/prism_utils.rbs', line 34

def self.inline_comments_for_node: (

.node_to_sourceString

Convert a Prism AST node to Ruby source code



40
# File 'sig/kettle/dev/prism_utils.rbs', line 40

def self.node_to_source: (Prism::Node? node) -> String

.normalize_argumentString

Normalize an argument node to canonical format



46
# File 'sig/kettle/dev/prism_utils.rbs', line 46

def self.normalize_argument: (Prism::Node arg) -> String

.normalize_call_nodeString

Normalize a call node to use parentheses format



43
# File 'sig/kettle/dev/prism_utils.rbs', line 43

def self.normalize_call_node: (Prism::Node node) -> String

.parse_with_commentsPrism::ParseResult

Parse Ruby source code and return Prism parse result with comments



8
# File 'sig/kettle/dev/prism_utils.rbs', line 8

def self.parse_with_comments: (String source) -> Prism::ParseResult

.statement_keyObject

Generate a unique key for a statement node to identify equivalent statements



14
# File 'sig/kettle/dev/prism_utils.rbs', line 14

def self.statement_key: (